반응형
리스트/쌍의 태플을 2개의 리스트/탭으로 압축 해제
중복 가능성:
Python의 Transpose/Unzip 함수
다음과 같은 목록이 있습니다.
list = (('1','a'),('2','b'),('3','c'),('4','d'))
리스트를 2개의 리스트로 나누고 싶습니다.
list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
예를 들어 다음과 같이 할 수 있습니다.
list1 = []
list2 = []
for i in list:
list1.append(i[0])
list2.append(i[1])
하지만 좀 더 우아한 해결책이 있는지 알고 싶어요.
>>> source_list = [('1','a'),('2','b'),('3','c'),('4','d')]
>>> list1, list2 = zip(*source_list)
>>> list1
('1', '2', '3', '4')
>>> list2
('a', 'b', 'c', 'd')
편집: 주의:zip(*iterable)
그 자체의 역수입니다.
>>> list(source_list) == zip(*zip(*source_list))
True
2개의 리스트로 압축 해제하면, 다음과 같이 됩니다.
>>> list1, list2 = zip(*source_list)
>>> list(source_list) == zip(list1, list2)
True
록스포트로커에 의해 제안된 추가.
list1 = (x[0] for x in source_list)
list2 = (x[1] for x in source_list)
언급URL : https://stackoverflow.com/questions/7558908/unpacking-a-list-tuple-of-pairs-into-two-lists-tuples
반응형
'source' 카테고리의 다른 글
원격 시스템에서 MySQL 덤프를 사용하는 방법 (0) | 2023.01.28 |
---|---|
VARCHAR 대신 TEXT를 mysql에 사용하는 경우 (0) | 2023.01.28 |
덱스를 실행할 수 없음: 여러 덱스 파일에 의해 정의됩니다. (0) | 2023.01.28 |
mod_php가 뭐죠? (0) | 2023.01.28 |
MySQL의 '삭제 제한 시' 절의 정확한 의미 (0) | 2023.01.28 |