mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = [[], [], []]
for i in range(len(mylist)):
for j in range(len(mylist[i])):
new_list[i].append(mylist[j][i])
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
def solution(mylist):
answer = []
for i in range(len(mylist)-1):
answer.append(abs(mylist[i] - mylist[i+1]))
return answer
if __name__ == '__main__':
mylist = [83, 48, 13, 4, 71, 11]
print(solution(mylist))
def solution(mylist):
answer = []
for number1, number2 in zip(mylist, mylist[1:]): # 리스트 전체와 리스트 1:값을 추출하여 zip
answer.append(abs(number1 - number2))
return answer
if __name__ == '__main__':
mylist = [83, 48, 13, 4, 71, 11]
print(solution(mylist))
zip 함수에 서로 길이가 다른 리스트가 인자로 들어오는 경우에는 길이가 짧은 쪽 까지만 이터레이션이 이루어 짐
📌 이터레이터(iterator)
파이썬과 같은 프로그래밍 언어에서 컬렉션(리스트, 튜플, 딕셔너리 등과 같은) 또는 스트림의 요소에 순차적으로 접근할 수 있는 객체__next__()
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = ['x', 'y', 'z']
zipped = zip(list1, list2, list3)
print(list(zipped))
# [(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]
mylist = [1, 2, 3]
new_list = [40, 50, 60]
for i in zip(mylist, new_list):
print (i)
(1, 40)
(2, 50)
(3, 60)
for number1, number2, number3 in zip(list1, list2, list3):
print(number1 + number2 + number3)
복잡한 데이터 구조를 간단하게 처리하거나, 여러 데이터의 동시처리가 필요할 경우 유용하게 사용됨
key리스트와 value 리스트로 dict 생성하기
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
*
기호로 사용됨 (수학적 연산자로도 사용됨first_list = [1, 2, 3]
second_list = [*first_list, 4, 5] # second_list는 [1, 2, 3, 4, 5]
def f(a=1, b=2, c=3):
return a + b + c
args = {'a': 10, 'b': 20, 'c': 30}
result = f(**args) # args 딕셔너리의 키와 값이 f 함수의 키워드 인자로 전달됨
*
의 여부에 따른 Zip 작동*
를 사용하지 않고 zip 실행하기 mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
zipped = zip(mylist)
print(list(zipped)) # [([1, 2, 3],), ([4, 5, 6],), ([7, 8, 9],)]
*
를 사용하여 zip 실행하기mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
zipped = zip(*mylist) # 언패킹 연산자를 사용하여 mylist의 각 요소를 개별적으로 전달
print(list(zipped)) # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]