중첩 목록 이해하기
목록 이해는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!