-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIterable.py
More file actions
46 lines (37 loc) · 1.78 KB
/
Iterable.py
File metadata and controls
46 lines (37 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# iterable
# iterable이란 자신의 멤버를 한번에 리턴할 수 있는 객체
# 파이썬의 sort() 함수를 사용하면 리스트의 원소를 정렬할 수 있습니다. 이때, sort 함수는 원본의 멤버 순서를 변경하지요.
# 따라서 원본의 순서는 변경하지 않고, 정렬된 값을 구하려면 sort 함수를 사용할 수 없습니다.
# # sort보다는 sorted 함수
# 파이썬에서는
# 파이썬의 sorted를 사용해보세요. 반복문이나, deepcopy 함수를 사용하지 않아도 새로운 정렬된 리스트를 구할 수 있습니다.
list1 = [3, 2, 1]
list2 = sorted(list1)
# 2차원 배열 뒤집기 _ zip
# 파이썬의 zip과 unpacking 을 이용하면 코드 한 줄로 리스트를 뒤집을 수 있습니다.
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
# zip(*iterables)는 각 iterables 의 요소들을 모으는 이터레이터를 만듭니다.
# 튜플의 이터레이터를 돌려주는데, 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]
answer = []
for i, j, k in zip(list1, list2, list3):
print( i + j + k )
# 두 리스트를 합쳐서 딕셔너리로 만들기
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
# map: 모든 멤버의 type 변환
# 파이썬의 map을 사용하면 for 문을 사용하지 않고도 멤버의 타입을 일괄 변환할 수 있습니다.
list1 = ['1', '100', '33']
list2 = list(map(int, list1))