>백엔드 개발 >파이썬 튜토리얼 >중첩 목록 이해는 Python에서 어떻게 작동합니까?

중첩 목록 이해는 Python에서 어떻게 작동합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 17:59:30635검색

How Does Nested List Comprehension Work in Python?

중첩 목록 이해하기

중첩 목록 이해는 복잡한 데이터 구조를 쉽게 만들 수 있게 해주는 Python의 강력한 기능입니다. 작동 방식을 이해하기 위해 단순화된 버전을 살펴보겠습니다.

<code class="python">[(min([row[i] for row in rows]), 
max([row[i] for row in rows])) 
for i in range(len(rows[0]))]</code>

이 표현식은 다음 for 루프와 동일합니다.

<code class="python">result=[]
for i in range(len(rows[0])):
  innerResult=[]
  for row in rows:
    innerResult.append(row[i])
  innerResult2=[]
  for row in rows:
    innerResult2.append(row[i])
  tuple=(min(innerResult), max(innerResult2))
  result.append(tuple)</code>

중첩 목록 이해의 핵심은 중첩입니다. for 루프의. 외부 루프는 행[0]의 요소를 반복하고, 내부 루프는 행의 행을 반복합니다.

위 표현식에서 첫 번째 for 루프는 목록의 외부 구조를 생성하는 역할을 합니다. 각 반복마다 새 튜플이 생성됩니다. 한편, 두 번째 for 루프는 튜플의 내부 구조를 생성합니다. 행의 각 행에 대해 인덱스 i의 요소를 추출하여 내부 결과 목록에 추가합니다.

이 개념을 일반화하려면 형식의 모든 중첩 목록 이해

<code class="python">[exp2([exp1 for x in xSet]) for y in ySet]</code>

할 수 있습니다. for 루프 구조로 변환됩니다.

<code class="python">result=[]
for y in ySet:
  innerResult =[]
  for x in xSet:
    innerResult.append(exp1)
  exp2Result = exp2(innerResult)
  result.append(exp2Result)</code>

간단한 경우에는 동등성이 간단합니다.

  • [exp1 for x in xSet for y in ySet]: for와 동일 x in xSet: for y in ySet: result.append(exp1)
  • [[exp1 for x in xSet] for y in ySet]: for y in ySet: innerResult=[]; xSet의 x에 대해: innerResult.append(exp1); result.append(innerResult)

위 내용은 중첩 목록 이해는 Python에서 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.