목록 구문 분석, 주로 목록을 동적으로 생성하는 데 사용됨
이 기사에서는 주로 목록 구문 분석 문과 결합된 람다, map() 및 filter()의 사용법에 대해 설명합니다.
목록 구문 분석의 기본 구문은 다음과 같습니다: [iter_var in의 expr iterable]
이 문의 핵심은 반복 가능한 객체의 모든 항목을 반복하는 for 루프입니다. 이전 expr은 시퀀스의 각 멤버에 적용되며 최종 결과 값은 표현식에 의해 생성된 목록입니다.
예를 들어보겠습니다
유휴 상태에서 테스트하세요:
>>> [i for i in range(0,8)]
[0,1,2 , 3,4,5,6,7]
여기서 i는 기본 구문에서 expr과 iter_val입니다. 내부 값에 대해 연산을 수행하고 모든 멤버에 2
> > [i*2 for i in range(0,8)]
[0, 2, 4, 6, 8, 10, 12, 14]
기본 구문에 따라 완전히 작성된 목록 구문입니다
확장 버전 구문: [iterable if cond_expr의 iter_val에 대한 expr]
목록을 필터링하기 위해 그 뒤에 몇 가지 문을 확장하고 추가할 수도 있습니다. 2
>>> [i for i in range(1,8) if i%2 == 0]
[ 2, 4, 6]
This 이 문 필터를 사용하는 것과 유사하므로 Python의 내장 필터 함수를 사용하여 동일한 값을 얻을 수도 있습니다
>>> l = filter(lambda x:x%2==0, range(1 , 8) )
> 왜? 필터의 반환 값은 생성기이므로 생성기는 반복을 통해서만 다음 값을 얻을 수 있습니다.
3. 목록 분석과 동일한 결과를 얻기 위해 맵을 사용합니다. 결과
>> ;> map(lambda x: x*2, range(1,8))
[2, 4, 6, 8, 10, 12, 14]
이를 사용하여 x에 대해 [x * 2를 얻습니다. in range(1,8)]과 같은 효과가 있지만 후자를 사용하는 것이 map()
4. 행렬 생성
행 3개와 열 5개로 구성된 행렬을 구해야 할 때 1 ), (0, 2), (0, 3), (0, 4),
(1, 0), (1, 1), (1, 2), (1, 3), (1, 4 ),
(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]
위 내용은 파이썬 목록 파싱의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!