Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 목록 이해:방법 가이드

Python 목록 이해는 기존 목록을 기반으로 목록을 만드는 방법입니다. 목록 이해는 일반적으로 목록에서 항목을 필터링하거나 기존 목록의 값을 변경하는 데 사용됩니다. 목록 이해는 대괄호로 묶입니다.

목록으로 작업할 때 기존 시퀀스의 내용을 기반으로 목록을 만들 수 있습니다. 예를 들어, 일련의 문자를 기반으로 목록을 만들 수 있습니다. 또는 다른 목록의 내용에 2를 곱하는 목록을 원할 수도 있습니다.

바로 여기에서 목록 이해가 필요합니다. 이 자습서에서는 예제와 함께 Python 목록의 기본 사항 및 목록 이해를 사용하는 방법을 살펴봅니다.

Python 목록:새로고침

목록 데이터 구조를 사용하면 항목 모음을 Python에 저장할 수 있습니다. 목록은 어떤 식으로든 관련된 여러 값으로 작업하려는 경우에 일반적으로 사용됩니다.

예를 들어 목록을 사용하여 아이스크림 가게에서 판매되는 모든 맛의 아이스크림을 저장할 수 있습니다. 또는 목록을 사용하여 와인 클럽 회원의 전화번호 목록을 저장할 수 있습니다.

다음은 Python의 목록 예입니다.

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

이제 목록의 기본 사항을 수정했으므로 목록 이해를 사용하는 방법에 대해 이야기할 수 있습니다.

파이썬 목록 이해

Python 목록 이해는 다른 목록의 내용에서 새 목록을 만듭니다. 목록 이해를 사용하여 목록을 복제하거나 기존 목록의 내용을 새 목록으로 수정할 수 있습니다. 또는 다른 iterable의 내용을 목록 이해가 있는 목록으로 전송할 수 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

새 목록에 특정 값만 포함되도록 필터를 지정할 수 있습니다. 예를 들어 숫자 목록에서 새 목록을 만들 수 있습니다. 새 목록에는 250보다 큰 숫자만 포함될 수 있습니다.

Python의 목록 이해 구문은 다음과 같습니다.

[expression for item in list]

이 구문은 Python for과 유사합니다. 성명. 그러나 진술은 한 줄에 있습니다. for 문을 구별하기 위해 목록 내포를 대괄호로 묶습니다.

위 구문에는 세 부분이 있습니다.

  • 표현 :새 목록에 들어갈 최종 값입니다.
  • 항목 :반복하는 목록의 개별 항목입니다.
  • 목록 :목록 이해가 통과하는 목록 또는 반복 가능한 개체입니다(허용되는 데이터 유형에는 튜플, 문자열 및 목록이 포함됨).

다음 내부에서 Python if…else 문과 함께 목록 이해를 사용할 수 있습니다.

[expression for item in list if condition else none]

이 이해는 지정된 조건을 충족하는 경우에만 항목을 목록에 추가합니다.

목록 이해를 사용하면 전체 for를 정의하지 않고도 기존 목록에서 새 목록을 만들 수 있습니다. 진술. 명령문은 최소 두 줄의 코드를 차지하지만 목록 이해는 한 줄에 작성할 수 있습니다.

어떤 사람들은 목록 이해가 더 파이썬적인 코드라고 말합니다. 이는 짧은 for를 사용하는 것보다 더 효율적이기 때문입니다. 성명서.

Python 목록 이해 예제

우리 가게에서 판매하는 모든 치킨 피자 목록을 만들고 싶다고 가정해 봅시다. 모든 치킨 피자를 치킨으로 옮길 것입니다. 메뉴의 카테고리입니다. 이를 위해 for를 사용하여 피자를 필터링할 수 있습니다. 진술. 또는 목록 이해를 사용하여 목록을 필터링할 수 있습니다.

목록 이해를 사용하여 이름에 Chicken이 포함된 새 피자 목록을 생성할 수 있습니다. 기존 피자 목록을 기반으로 합니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

chicken_pizzas = [p for p in pizzas if "Chicken" in p]
print(chicken_pizzas)

우리의 이해는 다음과 같은 출력 목록을 반환합니다:

[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]

코드에서 먼저 메뉴의 피자 목록을 정의합니다. 피자는 pizzas라는 Python 변수에 저장됩니다. . 그런 다음 목록 이해를 사용하여 이름에 Chicken이 포함된 새 피자 목록을 만듭니다.

목록 이해는 다음 부분으로 구성됩니다.

  • p :목록에 추가할 값입니다.
  • 피자용 :이것은 "피자" 목록에 있는 모든 피자를 반복합니다.
  • p에서 "Chicken"인 경우 :각 피자에 "Chicken"이 포함되어 있는지 확인합니다. True로 평가되면 "p"에 저장된 값이 목록에 추가됩니다.

목록 이해는 한 줄의 코드만 사용했습니다. 반면에 다음 예에서는 for와 함께 세 줄의 코드를 사용해야 합니다. 작동하도록 하는 진술. 다음 예는 목록 이해가 보다 깔끔한 코드를 작성하는 데 어느 정도 도움이 되는지 보여줍니다.

목록 이해 없이

치킨 피자의 예로 돌아가 보겠습니다. 목록 이해를 사용하지 않고 메뉴에 치킨 피자 목록을 생성하려면 다음 코드를 사용합니다.

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']
chicken_pizzas = []

for pizza in pizzas:
	if "Chicken" in pizza:
		chicken_pizzas.append(pizza)

print(chicken_pizzas)

코드 반환:

[‘Chicken’, ‘Chicken and Bacon’, ‘BBQ Chicken’]

먼저 두 개의 목록을 정의합니다. 하나의 목록은 우리 가게에서 판매되는 피자 목록을 저장합니다. 다른 목록은 우리가 판매하는 모든 치킨 피자 목록을 저장합니다. 저희가 판매하는 치킨 피자 목록은 처음에는 비어 있습니다.

"for" 문을 사용하여 피자 목록에 있는 각 피자를 살펴봅니다. 그런 다음 각 피자에 Chicken이라는 단어가 포함되어 있는지 확인합니다. 피자에 Chicken이라는 단어가 포함된 경우 , 그 피자를 치킨 피자 목록에 추가합니다. 이 경우 피자 3개에는 치킨이 들어 있습니다. , 그리고 이 세 가지 피자가 모두 chicken_pizzas에 추가되었습니다. 목록.

보시다시피 피자에 치킨이 포함되어 있는지 확인하려면 목록에 추가하기 위해 세 줄의 코드를 사용합니다. 이 코드를 작성하는 더 효율적인 방법이 있습니다:목록 이해를 사용하는 것입니다.

if…else를 사용한 목록 이해

if…else를 사용할 수도 있습니다. 목록 이해가 있는 문.

이전에는 if를 사용했습니다. 치킨 피자 목록에 피자를 추가하라는 명령문입니다. 피자 이름에 Chicken이라는 용어가 포함된 경우에만 피자를 추가했습니다. . 그러나 어떤 피자가 채식주의자인지 목록을 만들고 있다고 가정해 보겠습니다.

피자 이름에 Chicken이 포함된 경우 목록에 "Meat"를 추가하고 싶습니다. 및 채식주의자 피자 이름에 Chicken이 포함되지 않은 경우 .

이것은 목록 이해를 사용하여 수행할 수 있습니다.

pizzas = ['Chicken', 'Margherita', 'Chicken and Bacon', 'Vegan Special', 'Spinach and Brie', 'BBQ Chicken']

is_veggie = ["Meat" if "Chicken" in p else "Vegetarian" for p in pizzas]

print(is_veggie)

코드 반환:

[‘Meat’, ‘Vegetarian’, ‘Meat’, ‘Vegetarian’, ‘Vegetarian’, ‘Meat’]

코드를 분해해 보겠습니다. 먼저 pizzas라는 피자 목록을 선언합니다. . 그런 다음 목록 이해를 사용하여 피자 이름에 Chicken이 포함되어 있는지 여부를 평가합니다. 여부.

피자 이름에 Chicken이 포함된 경우 , 고기is_veggie에 추가됩니다. 목록. 그렇지 않으면 값 채식주의자 추가됩니다.

보시다시피 is_veggie의 첫 번째 값은 목록은 고기입니다. , 피자의 해당 값 때문에 목록은 치킨입니다. . 하지만 다음 가치는 채식주의자입니다. , 피자의 해당 값 때문에 목록은 마르게리타입니다. , 치킨을 포함하지 않음 .



결론

목록 이해를 사용하면 기존 목록을 기반으로 새 목록을 만들 수 있습니다. 목록 이해를 사용하여 목록의 복사본을 만들거나 이전 목록에서 값을 필터링하는 새 목록을 만들 수 있습니다.

이 자습서에서는 예제를 참조하여 Python 목록의 기본 사항과 목록 이해 기술을 사용하여 새 목록을 만드는 방법에 대해 설명했습니다.

Python 코딩에 대해 더 알고 싶으십니까? Python 학습 방법 가이드를 확인하세요. 이 가이드에는 Python 마스터를 향한 여정을 계속하는 데 도움이 되는 학습 리소스 목록이 포함되어 있습니다.