zip은 각 iterable 요소들을 모으는 이터레이터를 만듭니다. 튜플 이터레이터를 돌려주는데 i번째 튜플은 각 인자로 전달된 시퀀스나 이터러블의 i번째 요소를 포함합니다
mylist = [1,2,3]
new_list = [40,50,60]
for i in zip(mylist, new_list):
print(i)
>>>(1, 40)(2, 50)(3, 60)
list1 = [1, 2, 3, 4]
list2 = [100, 120, 30, 300]
list3 = [392, 2, 33, 1]
for n1, n2, n3 in zip(list1, list2, list3):
print(n1,n2,n3)
>>>1 100 392 2 120 2 3 30 33 4 300 1
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer= dict(zip(animals, sounds))
print(answer)
>>>{'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
'''각 n번째 리스트에 값을 넣어주는 방식'''
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])
'''zip함수를 사용하면 훨씬 편하다'''
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
print(*mylist)
>>>[1, 2, 3] [4, 5, 6] [7, 8, 9]
print(list(zip(*mylist)))
>>>[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
print(list(map(list,zip(*mylist))))
>>>[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
'''내가 푼 식...ㅎ'''
mylist=[83, 48, 13, 4, 71, 11]
n=len(mylist)
output=[]
for i in range(0,n-1): #0부터 4까지
M=max(mylist[i],mylist[i+1])
m=min(mylist[i],mylist[i+1])
output.append(M-m)
print(output)
'''절대값 함수 abs를 생활화하자'''
mylist=[83, 48, 13, 4, 71, 11]
output=[]
for i in range(len(mylist)-1):
output.append(abs(mylist[i]-mylist[i+1]))
'''zip을 사용하면 더 좋다'''
mylist=[83, 48, 13, 4, 71, 11]
output=[]
for num1, num2 in zip(mylist, mylist[1:]):
output.append(abs(num1-num2))
문자열 배열 ['1', '100', '33']을 이어 붙여 문자열 '110033' 만들기
my_list = ['1', '100', '33']
answer = ''.join(my_list)
>>>110033
두 스트링 'ABCD', 'xy' 의 곱집합은 Ax Ay Bx By Cx Cy Dx Dy 입니다.
import itertools
iterable1 = 'ABCD'
iterable2 = 'xy'
iterable3 = '1234'
print(list(itertools.product(iterable1, iterable2, iterable3)))
my_list = [[1, 2], [3, 4], [5, 6]]
# 방법 1 - sum 함수
answer = sum(my_list, [])
# 방법 2 - itertools.chain
import itertools
list(itertools.chain.from_iterable(my_list))
# 방법 3 - itertools와 unpacking
import itertools
list(itertools.chain(*my_list))
# 방법 4 - list comprehension 이용
[element for array in my_list for element in array]
# 방법 5 - reduce 함수 이용 1
from functools import reduce
list(reduce(lambda x, y: x+y, my_list))
# 방법 6 - reduce 함수 이용 2
from functools import reduce
import operator
list(reduce(operator.add, my_list))
from collections import deque
a=[1,2,3,4,5]
q=deque(a)
q.rotate(2)
print(q)
>>>deque([4, 5, 1, 2, 3])
'''deque 사용법: 대충 appendleft와 popleft를 할 수 있다?!'''
>>> from collections import deque
>>> d = deque([1,2,3,4,5])
>>> d.append(6)
>>> d
deque([1, 2, 3, 4, 5, 6])
>>> d.appendleft(0)
>>> d
deque([0, 1, 2, 3, 4, 5, 6])
>>> d.pop()
6
>>> d
deque([0, 1, 2, 3, 4, 5])
>>> d.popleft()
0
>>> d
deque([1, 2, 3, 4, 5])