1. 코드 안내
먼저 이 코드를 살펴보세요:
>>> name=('jack','beginman','sony','pcky') >>> age=(2001,2003,2005,2000) >>> for a,n in zip(name,age): print a,n
출력:
jack 2001
beginman 2003
sony 2005
pcky 2000
이 코드를 다시 살펴보세요.
all={"jack":2001,"beginman":2003,"sony":2005,"pcky":2000} for i in all.keys(): print i,all[i]
출력:
sony 2005
pcky 2000
jack 2001
beginman 2003
검색 그들 사이에 차이점이 있나요?
가장 분명한 점은 첫 번째가 간단하고 유연하며 순차적으로 입력할 수 있다는 것입니다.
2.zip() 함수
Python의 내장 함수입니다. (시퀀스와 관련된 내장 함수는 sorted(), reversed(), enumerate(), zip( )), 여기서 sorted() 및 zip()은 시퀀스(목록) 객체를 반환하고 reversed() 및 enumerate()는 반복자(시퀀스와 유사)를 반환합니다.
>>> type(sorted(s)) <type 'list'> >>> type(zip(s)) <type 'list'> >>> type(reversed(s)) <type 'listreverseiterator'> >>> type(enumerate(s)) <type 'enumerate'>
그럼 zip() 함수는 뭔가요?
도움말(zip)을 통해 확인:
>>> 도움말(zip)
내장 기능 zip에 대한 도움말 모듈 __builtin__:
zip(...)
zip(seq1 [, seq2 [...]]) -> [(seq1[0 ], seq2[0] ...), (...)]
튜플 목록을 반환합니다. 여기서 각 튜플은 i번째 요소를 포함합니다
반환된 목록은
가장 짧은 인수 시퀀스의 길이로 잘립니다. 🎜>
정의: zip([seql, ...]) 일련의 반복 가능한 개체를 매개 변수로 사용하고 개체의 해당 요소를 튜플(튜플)로 묶은 다음 이러한 튜플로 구성된 목록을 반환합니다. 전달된 매개변수의 길이가 동일하지 않은 경우, 반환되는 목록의 길이는 매개변수 중 길이가 가장 짧은 객체와 동일합니다.
>>> z1=[1,2,3] >>> z2=[4,5,6] >>> result=zip(z1,z2) >>> result [(1, 4), (2, 5), (3, 6)] >>> z3=[4,5,6,7] >>> result=zip(z1,z3) >>> result [(1, 4), (2, 5), (3, 6)] >>>zip()과 * 연산자를 사용하면 압축된 목록 개체의 압축을 풀 수 있습니다. >>> zip( *result)[(1, 2, 3), (4, 5, 6)]더 자세히 이해하기: * 2차원 행렬 변환(행과 열의 교환) 행렬) 예를 들어 목록으로 설명되는 2차원 행렬이 있습니다. a = [[1, 2, 3], [4, 5, 6], [ 7, 8, 9]]파이썬 목록 파생을 사용하면 이 작업을 쉽게 완료할 수도 있습니다print [ [row[col] for row in a] for col in range( len(a[ 0]))][[1, 4, 7], [2, 5, 8], [3, 6, 9]]또 다른 let 사람들을 혼란스럽게 하는 방법은 zip 기능을 사용하려면: >>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]>> > zip(*a)[(1, 4, 7), (2, 5, 8), (3, 6, 9)]>>> 지도(목록, zip(*a))[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
zip 함수는 임의 개수의 시퀀스를 매개변수로 허용하고 동일한 인덱스에 따라 모든 시퀀스를 각 시퀀스에 병합된 튜플로 요소가 있는 새 시퀀스로 결합합니다. 새 시퀀스의 길이는 매개변수 중 가장 짧은 시퀀스를 기반으로 합니다. . 또한 zip 함수와 결합된 (*) 연산자는 zip의 반대 기능, 즉 병합된 시퀀스를 여러 튜플로 분할할 수 있습니다.
새로운 ①튜플 시퀀스
②새로운 시퀀스의 길이는 매개변수 중 가장 짧은 시퀀스를 기준으로 합니다.
>>>>x=[1,2],y=['a','b ', 'c']
③(*) 연산자와 zip 기능은 zip의 반대 기능, 즉 병합된 시퀀스를 여러 튜플로 분할할 수 있습니다.
>>>x=[1,2,3],y=['a','b','c']