> 백엔드 개발 > 파이썬 튜토리얼 > Python의 중첩 목록 이해는 어떻게 작동하며 루프 형식에서는 해당 기능이 무엇입니까?

Python의 중첩 목록 이해는 어떻게 작동하며 루프 형식에서는 해당 기능이 무엇입니까?

DDD
풀어 주다: 2024-10-29 14:30:02
원래의
471명이 탐색했습니다.

How do Nested List Comprehensions in Python Work and What are Their Equivalents in Loop Form?

중첩 목록 이해하기

목록 이해는 Python에서 컬렉션을 조작하기 위한 간결하고 우아한 구문을 제공합니다. 중첩된 for 루프를 결합하면 복잡한 데이터 구조를 쉽게 구성할 수 있습니다. 다음은 중첩된 목록 이해의 작동 방식에 대한 자세한 분석입니다.

주어진 목록 이해를 고려하세요.

<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>
로그인 후 복사

이 코드는 다음 루프와 동일합니다.

<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>
로그인 후 복사

일반적으로 다음 형식의 중첩 목록 이해는 다음과 같이 번역될 수 있습니다.

<code class="python">[exp2([exp1 for x in xSet]) for y in ySet]</code>
로그인 후 복사

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

다음과 같은 더 간단한 경우:

<code class="python">[exp1 for x in xSet for y in ySet] </code>
로그인 후 복사

이는 다음과 동일합니다:

<code class="python">result = [] 
for x in xSet:
  for y in ySet: 
    result.append(exp1)</code>
로그인 후 복사

반면,

<code class="python">[[exp1 for x in xSet] for y in ySet]</code>
로그인 후 복사

은 다음과 동일합니다:

<code class="python">result = []
for y in ySet:
  innerResult = []
  for x in xSet:
    innerResult.append(exp1)
  result.append(innerResult)</code>
로그인 후 복사

단일 목록 이해는 항상 왼쪽에서 오른쪽으로 진행됩니다. 예:

<code class="python">[item for item in row for row in matrix] </code>
로그인 후 복사

내부 루프 변수 'row'가 외부 루프에 정의되지 않았기 때문에 이 코드는 작동하지 않습니다. 올바른 형식은 다음과 같습니다.

<code class="python">[item for row in matrix for item in row] </code>
로그인 후 복사

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿