Python에서 목록 이해를 사용하는 방법

Python에서 목록 이해를 사용하는 방법

Python에서 목록 이해를 적시에 사용하면 반복적인 목록 작업을 쉽게 수행할 수 있습니다. 단일 라인일 뿐만 아니라 더 읽기 쉽고 더 효율적으로 실행됩니다.





그러나 사용법을 모르면 귀찮을 수 있습니다. 코드에서 적용할 위치를 모른다면 더욱 답답할 수 있습니다. 여기에서는 몇 가지 실제 예제와 함께 Python에서 목록 이해를 사용하는 방법을 보여줍니다.





Python에서 목록 이해란 무엇이며 어떻게 작동합니까?

Python으로 항목 목록을 만드는 것은 쉽습니다. 그러나 수학 또는 문자열 연산에서 값 또는 항목 목록을 생성해야 하는 경우 작업이 약간 지루할 수 있습니다. 그럴 때 목록 이해가 유용할 수 있습니다.





목록 이해를 사용하는 이점은 단일 목록에서 여러 작업을 수행할 수 있다는 것입니다.

삭제 된 YouTube 비디오가 무엇인지 확인하십시오.

대조적으로 새 항목을 만들고 자동으로 선언하는 빈 목록에 추가합니다. 따라서 수동으로 빈 목록을 만들고 추가하는 대신 ~을위한 루프에서 Python의 목록 이해를 사용하면 새 목록이 어떻게 나오는지 신경쓰지 않고 자동으로 이 작업을 수행할 수 있습니다.

'목록 이해'라는 용어는 모든 작업이 명명된 변수에 할당된 Python 목록에 있다는 사실에서 비롯됩니다. 앞서 언급했듯이 코드 한 줄로 특정 작업을 수행할 수 있습니다. 그런 다음 출력을 새 목록에 추가합니다.

궁극적으로 목록 이해의 출력을 다른 목적으로 사용할 수도 있습니다. 별도의 변수에 표현식을 쌓기 때문입니다. 따라서 나중에 참조할 수 있습니다.

예를 들어, 당신은 BeautifulSoup으로 웹사이트 스크랩하기 . 웹 사이트에서 모든 항목의 이름과 가격을 얻으려고 한다고 가정합니다.

그런 다음 스크랩한 데이터를 CSV 또는 Excel 파일에 저장하기로 결정합니다. 이상적인 방법은 모든 항목의 이름과 가격을 스크랩하여 별도의 열에 두는 것입니다. 그러나 이 경우 목록 이해를 사용하면 전용 변수에 스크랩한 데이터가 있는지 확인합니다. 그런 다음 나중에 이러한 변수를 Python DataFrame으로 변환할 수 있습니다.

아래의 예를 보십시오.

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

루프된 변수를 가져오면 Python의 Pandas를 사용하여 DataFrame의 별도 열에 넣을 수 있습니다.

Python에서 목록 이해를 만들고 사용하는 방법

NS ~을위한 루프는 목록 이해에서 필수적인 반복자입니다. 일반적으로 Python의 목록 이해는 다음 형식을 사용합니다.

ComprehensionVariable = [expression for items in list]

인쇄 이해변수 위 코드의 결과를 목록으로 출력합니다.

그러나 목록 이해와 개방형을 혼동하지 않도록 주의하십시오. ~을위한 고리.

예를 들어 열린 for 루프 사용 1과 30 사이의 3의 모든 배수 목록을 얻으려면:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

둘을 비교하기 위해 목록 이해를 사용하여 동일한 작업을 수행해 보겠습니다.

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

조건문과 함께 목록 이해를 사용할 수도 있습니다. 아래 예제 코드는 1에서 10 사이의 모든 홀수를 인쇄합니다.

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

이제 open을 사용하여 위의 코드를 다시 작성해 보겠습니다. ~을위한 고리:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

관련된: Python에서 목록을 추가하는 방법

목록 이해는 중첩된 if 문도 허용합니다.

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

또한 중첩이 필요합니다. ~을위한 고리:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

당신은 또한 일반 중첩을 가질 수 있습니다 ~을위한 목록 이해에서 루프:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Python 목록 이해로 문자열을 조작할 수도 있습니다. 아래에서 단어 카운터 이해력을 살펴보겠습니다.

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

목록 이해는 특정 작업을 수행하는 함수도 받아들일 수 있습니다. 이것이 어떻게 작동하는지 보기 위해 목록 이해에서 짝수를 가져오는 승수 함수를 삽입해 보겠습니다.

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

이해력을 사용하지 않고도 위의 코드를 단일 함수로 작성할 수 있습니다. 그러나 목록 이해는 여러 반복을 수행하고 각각을 별도의 변수에 배치해야 할 때 유용합니다.

예를 들어, 다음에서 다른 작업을 수행할 수 있습니다. N 전용 변수가 있습니다. 홀수에서 짝수를 생성하도록 위의 이해를 수정해 보겠습니다.

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

사전 및 집합 이해

목록 이해 외에도 Python은 사전 및 집합 이해 기능도 제공합니다.

작동 방식을 보려면 아래 사전 이해의 예를 살펴보십시오.

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

위의 코드는 1과 9 사이의 숫자 목록을 반복하고 키를 만듭니다. 그런 다음 Python에 각 키에 2를 곱하도록 지시합니다. 마지막으로 해당 작업의 결과를 결과 배열의 각 키에 해당하는 값으로 표시합니다.

관련된: 파이썬에서 배열과 목록이 작동하는 방식

집합 이해는 목록 이해와 약간 비슷합니다. 다음은 집합 이해의 예입니다.

Windows 10 게임용 성능 조정
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

그러나 목록 이해와 달리 집합 이해는 중복을 제거합니다.

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

목록 이해를 사용하여 위의 코드를 시도하여 어떻게 다른지 확인할 수 있습니다.

항상 목록 이해를 사용할 수 있습니까?

목록 이해의 다양한 예와 이를 사용할 수 있는 위치를 살펴보았습니다. 그러나 다른 Python 방법과 마찬가지로 목록 이해의 사용 사례는 해결하려는 특정 문제에 따라 다릅니다. 따라서 해결하려는 특정 문제에 이상적인 경우에만 사용해야 합니다.

목록 이해의 목적 중 하나는 코드를 단순화하고 더 읽기 쉽게 만드는 것입니다. 따라서 그것을 다룰 때 복잡성을 피하십시오. 예를 들어, 긴 Python 이해는 읽기에 복잡해질 수 있습니다. 그것은 그 목적을 무효화합니다.

공유하다 공유하다 트위터 이메일 Python List Comprehension을 사용하는 방법(및 사용하지 않는 경우)

밤새 생산성과 코드 가독성을 높여줄 이 놀라운 Python 기능을 사용하는 방법에 대해 알아야 할 모든 것이 있습니다.

다음 읽기
관련 항목
  • 프로그램 작성
  • 파이썬
저자 소개 이디소 오미솔라(94건의 기사 게재)

Idowu는 스마트 기술과 생산성에 대한 열정을 가지고 있습니다. 여가 시간에는 코딩을 하고 지루할 때는 체스판으로 전환하지만 가끔은 일상에서 벗어나는 것도 좋아합니다. 사람들에게 현대 기술을 다루는 방법을 보여주고자 하는 그의 열정은 그가 더 많은 글을 쓰도록 동기를 부여합니다.

Idowu Omisola가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.