input example:[[1,2,3], [4,5,6], [7,8,9]]
output example:[[1,4,7], [2,5,8], [3,6,9]]
많은 분들이 2중 for문을 이용해 작성할 것 같아요. 저도 마찬가지였어요.
defsolution(mylist): answer= [[],[],[]] foriinrange(len(mylist)): forjinrange(len(mylist)): answer[i].append(mylist[j][i]) returnanswer
알아보니.. zip과 unpacking을 이용해 아주 간단한 코딩이 가능하더라구요.
defsolution(mylist): answer=list(map(list, zip(*mylist))) returnanswer
zip 함수
zip은 iterable(멤버를 하나씩 차례로 반환 가능한 object)의 요소들을 모으는 iterator를 만들어요.대표적인 타입: list, str, tuple
example1 input:
list1= [1,2,3,4] list2= [10,20,30,40] list3= [100,200,300,400] foriinzip(list1,list2,list3): print(i)
output:
(1, 10, 100) (2, 20, 200) (3, 30, 300) (4, 40, 400)
example2 input:
animals= ['cat', 'dog', 'lion'] sounds= ['meow', 'woof', 'roar'] answer=dict(zip(animals, sounds)) print(answer)
output:
{'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
이렇게 zip함수를 이용하면 딕셔너리 또한 간단하게 만들 수 있어요!
파이썬은 정말 알면 알수록 매력적인 언어같아요.