Python의 이해력: list, dict 및 set 이해력이란 무엇입니까?

소개:



우리는 코드를 단순화할 때 컴프리헨션을 사용합니다. 코드 전쟁과 같은 코딩 챌린지에 참여하면 이해력을 사용하여 답변을 볼 수 있습니다. Comprehension을 사용하면 프로그래밍에서 여러 줄의 코드를 작성하는 대신 한 줄로 작성할 수 있습니다.

이 기사에서는 목록 이해, 사전 이해 및 집합 이해를 포함하는 Python의 이해를 살펴보겠습니다.

목록 이해력이란 무엇입니까?



목록 이해는 목록을 사용하여 코드를 작성하는 더 간단하고 짧은 방법입니다. 여기에는 for 루프와 if 문이 포함될 수 있습니다.

예시:

목록에서 문자열의 첫 문자를 제거해 봅시다

목록 이해가 없는 경우:

string_in_list = ['aderin','agnes','anuli','aga','aderin','asabar','agnes']

str = []
for i in string_in_list:
    str.append(i[1:])
print(str)


산출:

['derin', 'gnes', 'nuli', 'ga', 'derin', 'sabar', 'gnes']


목록 이해:

string_in_list =   ['aderin','agnes','anuli','aga','aderin','asabar','agnes']

str = [n[1:] for n in string_in_list]
print(str)


산출:

['derin', 'gnes', 'nuli', 'ga', 'derin', 'sabar', 'gnes']


위의 예에서 목록 이해는 코드를 더 간단하고 짧게 만듭니다.

다른 예에서는 3보다 작거나 같은 문자열만 선택합니다.

목록 이해 없이

string_in_list = ['aderin','agnes','anuli','aga','aderin','asabar','agnes']

str = []
for i in string_in_list:
    if len(i) <= 3:
        str.append(i)
print(str)


산출:

['aga']


목록 이해를 사용하여 코드를 단순화하고 단축합니다.

string_in_list = ['aderin','agnes','anuli','aga','aderin','asabar','agnes']
str = [n for n in string_in_list if len(n) <= 3]
print(str)


산출:

[’aga’]


이제 dict comprehension을 살펴보겠습니다.

dict 이해력이란 무엇입니까?



Dict comprehension은 사전을 단순화하고 단축하는 데 사용됩니다. 딕셔너리는 for 루프와 if 문도 허용할 수 있습니다.

사전 이해 없이

str_in_dict =  {aderin:23,agnes:26,anuli:29,aga:31,aderin:17,asabar:25,agnes:37}

bio_str = {}
for k,v in str_in_dict.items():
    if v <= 30:
        bio_str[k] = v
print(bio_str)


산출:

{'aderin': 17, 'anuli': 29, 'asabar': 25}


dict 이해력으로

str_in_dict =  {aderin:23,agnes:26,anuli:29,aga:31,aderin:17,asabar:25,agnes:37}

bio_str = {k: v for (k,v) in str_in_dict.items() if v <= 30}
print(bio_str)


산출:

{'aderin': 17, 'anuli': 29, 'asabar': 25}


위의 코드에서 이름 문자열에 나이를 추가하고 이름을 반복하여 나이가 30 이하인 이름만 선택했습니다.

20세 이상 30세 미만의 연령을 선택하려면 이전 코드에 if 문을 하나 더 추가하면 됩니다.

사전 이해 없이

str_in_dict =  {aderin:23,agnes:26,anuli:29,aga:31,aderin:17,asabar:25,agnes:37}

bio_str = {}
for k,v in str_in_dict.items():
    if v <= 30 and v >= 20:
        bio_str[k] = v
print(bio_str)


산출:

{'anuli': 29, 'asabar': 25}


dict 이해력으로

str_in_dict =  {aderin:23,agnes:26,anuli:29,aga:31,aderin:17,asabar:25,agnes:37}

bio_str = {k: v for (k,v) in str_in_dict.items() if v <= 30 if v >= 20 }
print(bio_str)


산출:

{'anuli': 29, 'asabar': 25}


집합 이해력이란 무엇입니까?



집합 이해는 더 간단하고 짧은 형태의 집합입니다. dict comprehension과 마찬가지로 중괄호를 사용합니다.

집합은 목록과 달리 중복 값을 생성하지 않으므로 반복할 때 고유한 값을 생성합니다.

정해진 이해 없이

strings_in_set= {aderin,agnes,anuli,aga,aderin,asabar,agnes}

bio_sets = set()

for i in strings_in_set:
    bio_sets.add(i)
print(bio_sets)


산출:

{'anuli', 'aderin', 'agnes', 'aga', 'asabar'}


세트 이해력으로

strings_in_set = {aderin,agnes,anuli,aga,aderin,asabar,agnes}

bio_sets = {i for i in strings_in_set}
print(bio_sets)


산출:

{'agnes', 'aga', 'asabar', 'anuli', 'aderin'}


컴프리헨션을 사용하는 경우



Comprehension은 초보자에게 친숙하지 않지만 일단 목록, 사전 및 세트에 대한 이해를 얻으면 됩니다. 당신은 그들을 사랑합니다. 특히 단순한 스타일의 경우 이해를 사용하는 것이 항상 권장되는 것은 아닙니다. 읽기 어려울 수 있습니다.

Zen of Python 이라는 시에 이런 구절이 있습니다.

if the implementation is hard to explain, it’s a bad idea.



컴프리헨션을 쓰다 보면 글을 쓰면서 설명하기 쉽다고 느끼겠지만 그건 본인이 썼기 때문이다. 당신의 코드를 보는 다른 사람이 당신이 하고 있는 일을 이해하는 것은 완전히 어려울 수 있습니다.

결론



Comprehension은 코드를 단순화하고 단축하는 데 사용됩니다. 코드를 작성할 때 너무 많은 줄을 사용하고 있다는 것을 알게 되면 컴프리헨션을 사용할 수 있습니다. 그러나 읽기 쉽고 이해하기 쉬워야 합니다.

읽어주셔서 감사하고 더 많은 배움을 응원합니다.

좋은 웹페이지 즐겨찾기