Python의 목록 이해 – 예제 포함

Python에서 목록 이해는 목록, 문자열 및 튜플과 같은 기존 이터러블에서 새 목록을 만드는 데 도움이 됩니다.

간결한 구문을 사용하면 한 줄의 코드로 새 목록을 만들 수 있습니다. 그리고 이 튜토리얼은 당신이 그렇게 할 수 있는 방법을 가르쳐줄 것입니다.

다음 몇 분 동안 배우게 됩니다.

  • for 루프를 사용하여 새 목록을 만드는 방법,
  • Python에서 목록 이해를 사용하기 위한 구문 및
  • if 조건문으로 목록 이해를 수정하는 방법.

또한 목록 이해를 더 잘 이해하는 데 도움이 되는 몇 가지 예제를 코딩할 것입니다.

푹 빠져봅시다.🌊

for 루프를 사용하여 Python 목록을 만드는 방법

숫자 num의 목록 번호가 있다고 가정합니다. 그리고 모든 숫자의 큐브를 num으로 포함하는 또 다른 목록을 만들고 싶습니다. 다음은 Python에서 for 루프를 사용하여 수행하는 방법입니다.

nums = [2,3,5,7]
num_cubes = []
for num in nums:
  num_cubes.append(num**3)

print(num_cubes)

# Output
[8, 27, 125, 343]

위의 코드에는 다음 단계가 있습니다.

  • 빈 목록 num_cubes를 초기화합니다.
  • 숫자 목록을 반복합니다.
  • 각 숫자 num에 액세스하고 지수 연산자 num**3을 사용하여 큐브를 계산합니다.
  • 마지막으로 num_cubes 목록에 큐브 값을 추가합니다.

참고: Python에서 지수 연산자 **는 다음 구문과 함께 사용됩니다. num**pow—숫자 num이 거듭제곱으로 올라갑니다.

그러나 Python에서 목록 이해를 사용하면 이 작업을 더 쉽게 수행할 수 있습니다. 구문을 배우도록 합시다.

Python 목록 이해 구문

목록 이해를 위한 일반 구문은 다음과 같습니다.

<new_list> = [<expression> for <item> in <iterable>]

위의 구문을 구문 분석해 보겠습니다.

  • Python에서 목록은 한 쌍의 대괄호로 구분됩니다. []- 따라서 목록 이해 문을 안에 포함해야 합니다. [].
  • 은 iterable을 반복하고 있음을 나타냅니다. 목록, 튜플 및 문자열과 같은 개별 항목을 반복하고 액세스할 수 있는 모든 Python 객체는 이터러블입니다.
  • 의 모든 에 대해 계산하려는 출력입니다.

그리고 이것은 간단하게 들립니다. 예?

본질적으로, 새 목록을 얻기 위해 목록의 모든 항목(또는 반복 가능한 항목)에 대해 뭔가를 하고 싶습니다.

이를 사용하여 아래 이미지와 같이 구문을 단순화할 수 있습니다.

Python 목록 이해 구문(저자별 이미지)

구문을 배웠으니 이제 코딩을 시작할 차례입니다. koreantech.org의 온라인 Python IDE를 사용하여 이러한 예제를 따를 수 있습니다. 또는 로컬 컴퓨터에서 실행할 수 있습니다.

Python 목록 이해 예제

이전 섹션에서는 nums에서 새 목록 num_cubes를 만들었습니다. 목록 이해를 사용하여 다시 작성해 보겠습니다.

숫자와 함께 목록 이해 사용하기

이제 다음과 같이 단순화된 구문을 사용하겠습니다.

  • : 여기에서 각 숫자를 세제곱해야 합니다. 따라서 를 num**3으로 바꿉니다.
  • : 반복 변수는 목록의 개별 숫자인 num입니다.
  • : 기존 목록은 nums입니다.
  • 그리고 [num**3 for num in nums] 마지막 표현입니다. ✅

이 모든 것을 종합하면 다음 코드 스니펫이 있습니다.

num_cubes = [num**3 for num in nums]
print(num_cubes)

# Output
[8, 27, 125, 343]

축하합니다. 첫 번째 목록 이해를 코딩했습니다.🎉

계속해서 Python 문자열로 작업해 보겠습니다.

문자열과 함께 목록 이해 사용

목록 작성자가 있다고 가정해 보겠습니다. 좋아하는 작가로 아래 목록을 다시 작성할 수 있습니다.😄

authors = ["jane austen","george orwell","james clear","cal newport"]

위 목록에서 저자 이름이 어떻게 소문자인지 주목하십시오. 이제 제목 케이스에 형식을 지정하고 author_list라는 새 목록에 저장하려고 합니다.

참고: Python에서 문자열 메서드는 제목() 문자열을 인수로 받아들이고 제목 케이스에 서식이 지정된 문자열의 복사본을 반환합니다. 즉, 각 단어의 첫 글자는 대문자입니다. 이름 성

여기에서 해야 할 일은 다음과 같습니다.

  • 저자 목록을 순환하고 목록의 각 저자에 대해,
  • author.title()을 호출하여 문자열의 제목 대소문자 사본을 가져옵니다.

이에 대한 Python 코드는 다음과 같습니다.

authors = ["jane austen","george orwell","james clear","cal newport"]

author_list = [author.title() for author in authors]
print(author_list)

# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

위의 출력에서 ​​모든 저자의 이름이 제목 케이스에서 어떻게 형식이 지정되었는지 관찰하십시오. 이것이 바로 우리가 원했던 것입니다.

여러 목록에서 목록 이해 사용하기

지금까지 목록 이해를 사용하여 하나의 기존 목록에서 새 목록을 만드는 방법을 배웠습니다. 이제 여러 목록에서 새 목록을 만드는 방법을 알아보겠습니다.

예를 들어, 다음 문제를 고려하십시오. 4개의 직사각형의 길이와 너비를 포함하는 두 개의 목록 l_arr 및 b_arr이 있습니다.

그리고 이 4개의 직사각형 영역을 포함하는 새 목록 영역을 만들어야 합니다. 면적 = 길이 * 너비를 기억하십시오.

l_arr = [4,5,1,3]
b_arr = [2,1,7,9]

면적을 계산하려면 두 목록(l_arr 및 b_arr)의 요소가 모두 필요합니다. 그리고 Python의 zip() 함수를 사용하여 수행할 수 있습니다.

참고: Python에서 zip() 함수는 zip(*iterables) 구문을 사용하여 하나 이상의 반복 가능한 항목을 인수로 사용합니다. 그런 다음 튜플의 반복자를 반환합니다. 여기서 튜플 i에는 각 반복 가능한 항목의 요소 i가 포함됩니다.

다음 이미지는 이에 대해 자세히 설명합니다. l_arr 및 b_arr에 4개의 값이 있으므로 인덱스 범위는 0에서 3까지입니다. 보시다시피 튜플 0에는 l_arr이 포함되어 있습니다.[0] 그리고 b_arr[0]튜플 1에는 l_arr이 포함됩니다.[1] 그리고 b_arr[1]등등.

Python zip() 함수(저자별 이미지)

따라서 아래와 같이 zip(l_arr,b_arr)을 반복할 수 있습니다.

area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)

# Output
[8,5,7,27]

다음 섹션에서는 목록 이해 내에서 조건문을 사용하는 방법을 배웁니다.

조건 구문을 사용한 Python 목록 이해

목록 이해를 위한 이전 구문을 기반으로 시작하겠습니다.

구문은 다음과 같습니다.

<new_list> = [<expression> for <item> in <iterable> if <condition>]

모든 항목에 대해 을 계산하는 대신 특정 (여기서, condition := True)을 충족하는 항목에 대해서만 계산하고 싶습니다. 그리고 이것은 다음과 같이 단순화된 구문으로 이어집니다.

조건 구문을 사용한 Python 목록 이해(저자 이미지)

▶ 이것으로 코드 예제를 진행해 보겠습니다.

조건 예제를 사용한 Python 목록 이해

#1. “I’m learning Python in 2022″라는 문자열이 제공됩니다. 이 문자열의 모든 숫자 목록을 얻고 싶습니다. 그래서 어떻게 합니까?

Python에서 .isdigit()은 문자 에 대해 작동하고 숫자(0-9)이면 True를 반환합니다. 그렇지 않으면 False를 반환합니다.

아래 코드 스니펫은 문자열 str1의 모든 숫자 목록을 수집하는 방법을 보여줍니다.

str1 = "I'm learning Python3 in 2022"

digits = [char for char in str1 if char.isdigit()]

print(digits)

# Output
['3', '2', '0', '2', '2']

위의 코드에서:

  • 문자열 str1을 반복합니다.
  • isdigit() 메서드를 사용하여 숫자인지 확인하기 위해 각 문자에 액세스하고,
  • 숫자인 경우에만 새 목록 숫자에 char를 추가합니다.

다른 예를 들어보겠습니다.

#2. 과일 목록이 있습니다.🍊 그리고 b로 시작하는 과일 목록의 모든 과일을 포함하는 starts_with_b 목록을 만들고 싶습니다. 조건을 작성하기 위해 startswith() 메소드를 사용할 수 있습니다.

.startswith(‘char’)는 이 ‘char’로 시작하면 True를 반환합니다. 그렇지 않으면 False를 반환합니다.

fruits = ['blueberry','apple','banana','orange','cherry']

starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]

print(starts_with_b)

# Output
['blueberry', 'banana']

위의 출력에서 ​​우리는 예상대로 과일 목록에서 ‘b’로 시작하는 두 과일인 ‘블루베리’와 ‘바나나’를 얻습니다.

이것으로 목록 이해에 대한 논의를 마치겠습니다.

결론

이 튜토리얼이 Python의 목록 이해를 이해하는 데 도움이 되었기를 바랍니다.

요약하자면:

  • 당신이 사용할 수있는 [<do this> for <all-items> in <this-list>] 목록 이해를 사용하여 새 목록을 만듭니다.
  • 또한 다음 구문을 사용할 수 있습니다. [<do this> for <all-items> in <this-list> if <condition-is-True>] if 조건문과 함께.

또한 여러 예제를 코딩했습니다. 다음 단계로 목록 이해를 사용하여 목록 생성을 위해 기존 Python 루프 중 일부를 다시 작성할 수 있습니다. 즐거운 코딩! 다음 튜토리얼까지😄

이제 목록을 사전으로 변환하는 방법을 살펴보거나 Python에서 파일을 처리하는 방법을 배울 수 있습니다.

  13 영국 및 유럽 시장을 위한 최고의 호스팅 플랫폼