>  기사  >  백엔드 개발  >  강력한 zip

강력한 zip

高洛峰
高洛峰원래의
2016-10-20 10:00:171106검색

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 &#39;list&#39;>
 >>> type(zip(s))
 <type &#39;list&#39;>
 >>> type(reversed(s))
 <type &#39;listreverseiterator&#39;>
 >>> type(enumerate(s))
 <type &#39;enumerate&#39;>

그럼 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,3],y=['a','b','c']

>>>zip(x,y)

[(1,'a'),(2,'b'),(3,'c')]

②새로운 시퀀스의 길이는 매개변수 중 가장 짧은 시퀀스를 기준으로 합니다.

>>>>x=[1,2],y=['a','b ', 'c']

>>>zip(x,y)

[(1,'a'),(2,'b')]

③(*) 연산자와 zip 기능은 zip의 반대 기능, 즉 병합된 시퀀스를 여러 튜플로 분할할 수 있습니다.

>>>x=[1,2,3],y=['a','b','c']

>>>>zip(*zip( x ,y))

[(1,2,3),('a','b','c')]

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