Python 이 여러 서열 을 동시에 교체 하 는 방법
너 는 여러 개의 서열 을 동시에 교체 하고 매번 하나의 서열 에서 하나의 요 소 를 취하 고 싶다.
해결 방안
여러 서열 을 동시에 교체 하기 위해 zip()함 수 를 사용 합 니 다.예 를 들 면:
>>> xpts = [1, 5, 4, 2, 10, 7]
>>> ypts = [101, 78, 37, 15, 62, 99]
>>> for x, y in zip(xpts, ypts):
... print(x,y)
...
1 101
5 78
4 37
2 15
10 62
7 99
>>>
zip(a,b)는 원 그룹(x,y)으로 돌아 갈 수 있 는 교체 기 를 생 성 합 니 다.그 중에서 x 는 a,y 는 b 에서 옵 니 다.그 중 어떤 서열 이 끝까지 끝나 면 교체 가 끝난다.따라서 교체 길 이 는 매개 변수 중 최 단 시퀀스 길이 와 일치 합 니 다.
>>> a = [1, 2, 3]
>>> b = ['w', 'x', 'y', 'z']
>>> for i in zip(a,b):
... print(i)
...
(1, 'w')
(2, 'x')
(3, 'y')
>>>
이것 이 당신 이 원 하 는 효과 가 아니라면 itertools.zip 도 사용 할 수 있 습 니 다.longest()함수 로 대체 합 니 다.예 를 들 면:
>>> from itertools import zip_longest
>>> for i in zip_longest(a,b):
... print(i)
...
(1, 'w')
(2, 'x')
(3, 'y')
(None, 'z')
>>> for i in zip_longest(a, b, fillvalue=0):
... print(i)
...
(1, 'w')
(2, 'x')
(3, 'y')
(0, 'z')
>>>
토론 하 다.데 이 터 를 쌍 으로 처리 하고 싶 을 때 zip()함수 가 유용 합 니 다.예 를 들 어 머리 목록 과 값 목록 을 가정 하면 다음 과 같 습 니 다.
headers = ['name', 'shares', 'price']
values = ['ACME', 100, 490.1]
zip()를 사용 하면 그것들 을 포장 하고 사전 을 만 들 수 있 습 니 다.
s = dict(zip(headers,values))
또는 아래 와 같이 출력 할 수 있 습 니 다:
for name, val in zip(headers, values):
print(name, '=', val)
흔 하지 않 지만 zip()는 두 개 이상 의 시퀀스 의 인 자 를 받 아들 일 수 있 습 니 다.이때 생 성 된 결과 원본 의 요소 개 수 는 입력 시퀀스 개수 와 같 습 니 다.예컨대
>>> a = [1, 2, 3]
>>> b = [10, 11, 12]
>>> c = ['x','y','z']
>>> for i in zip(a, b, c):
... print(i)
...
(1, 10, 'x')
(2, 11, 'y')
(3, 12, 'z')
>>>
마지막 으로 강조 하 는 것 은 zip()가 결 과 를 되 돌려 주 는 교체 기 를 만 들 것 이다.목록 에 결 합 된 값 을 저장 하려 면 list()함 수 를 사용 하 십시오.예 를 들 면:
>>> zip(a, b)
<zip object at 0x1007001b8>
>>> list(zip(a, b))
[(1, 10), (2, 11), (3, 12)]
>>>
이상 은 Python 이 여러 서열 을 동시에 교체 하 는 방법 에 대한 상세 한 내용 입 니 다.Python 이 여러 서열 을 동시에 교체 하 는 것 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.