Python 이 여러 서열 을 동시에 교체 하 는 방법

2677 단어 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 이 여러 서열 을 동시에 교체 하 는 것 에 관 한 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기