Programming

리스트 / 튜플 쌍을 두리스트 / 튜플로 풀기

procodes 2020. 6. 13. 20:21
반응형

리스트 / 튜플 쌍을 두리스트 / 튜플로 풀기


가능한 중복 :
파이썬에서 조옮김 / 압축 풀기 기능

다음과 같은 목록이 있습니다.

list = (('1','a'),('2','b'),('3','c'),('4','d'))

목록을 두 목록으로 분리하고 싶습니다.

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

두 목록으로 포장을 풀면 다음과 같이됩니다.

>>> list1, list2 = zip(*source_list)
>>> list(source_list) == zip(list1, list2)
True

Rocksportrocker가 제안한 추가 사항.


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

반응형