>  기사  >  백엔드 개발  >  파이썬 목록 파싱

파이썬 목록 파싱

巴扎黑
巴扎黑원래의
2017-06-27 09:09:411886검색

목록 구문 분석, 주로 목록을 동적으로 생성하는 데 사용됨

이 기사에서는 주로 목록 구문 분석 문과 결합된 람다, map() 및 filter()의 사용법에 대해 설명합니다.

목록 구문 분석의 기본 구문은 다음과 같습니다: [iter_var in의 expr iterable]

이 문의 핵심은 반복 가능한 객체의 모든 항목을 반복하는 for 루프입니다. 이전 expr은 시퀀스의 각 멤버에 적용되며 최종 결과 값은 표현식에 의해 생성된 목록입니다.

1. 기본 사용법

예를 들어보겠습니다

유휴 상태에서 테스트하세요:

>>> [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]

기본 구문에 따라 완전히 작성된 목록 구문입니다

2. 재활용 문 뒤에 판단 조건 추가

확장 버전 구문: [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)]

PEP 202 목록 구문 분석 정보에서 더 많은 참고 자료를 찾을 수도 있습니다.

위 내용은 파이썬 목록 파싱의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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