>  기사  >  백엔드 개발  >  중첩된 목록 이해는 어떻게 작동합니까: 구조 및 기능 디코딩?

중첩된 목록 이해는 어떻게 작동합니까: 구조 및 기능 디코딩?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 06:53:28815검색

How do Nested List Comprehensions Work: Decoding the Structure and Functionality?

중첩 목록 이해하기

중첩 목록 이해는 복잡한 데이터 구조를 간결하고 효율적인 방식으로 생성하기 위한 강력한 도구를 제공합니다. 동작을 이해하기 위해 구조를 분석해 보겠습니다.

일반 구문:

[exp2([exp1 for x in xSet]) for y in ySet]

확장 루프 형식으로 변환:

result = []
for y in ySet:
    innerResult = []
    for x in xSet:
        innerResult.append(exp1)
    exp2Result = exp2(innerResult)
    result.append(exp2Result)

단순 사례:

  • [exp1 for x in xSet for y in ySet]:

    result = []
    for x in xSet:
        for y in ySet:
            result.append(exp1)
  • [[exp1 for x in xSet] for y in ySet]:

    result = []
    for y in ySet:
        innerResult = []
        for x in xSet:
            innerResult.append(exp1)
        result.append(innerResult)

예:

다음 중첩 목록 이해:

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]

튜플 목록을 생성합니다. 여기서 각 튜플에는 행 목록의 모든 행에 걸쳐 특정 열에 대한 최소값과 최대값이 포함됩니다. . 동등한 확장 루프 형식은 다음과 같습니다.

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)

핵심 사항:

  • 가장 안쪽 루프는 가장 안쪽 표현식(exp1)에 해당합니다.
  • 외부 루프는 내부 ​​루프에 대한 입력을 생성합니다.
  • 결과는 내부 표현식의 결과 목록입니다.
  • 루프의 중첩 순서에 따라 구조가 결정됩니다.

이러한 체계적인 접근 방식을 이해하면 이 개념을 광범위한 목록 이해 변형에 적용할 수 있습니다.

위 내용은 중첩된 목록 이해는 어떻게 작동합니까: 구조 및 기능 디코딩?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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