728x90
https://programmers.co.kr/learn/courses/4008
iterable
- 자신의 멤버를 하나씩 리턴할 수 있는 객체 (반복가능한 객체)
- list, str, tuple, dictionary 등
[2차원 리스트 행-열 바꾸기]
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = [[], [], []]
for i in range(len(mylist)):
for j in range(len(mylist)):
new_list[i].append(mylist[j][i])
# zip, unpacking 사용
mylist = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
new_list = list(map(list, zip(*mylist)))
- zip 함수
- 각 iterable의 요소들을 모으는 iterator를 생성
- 튜플의 iterator를 반환하는데, i번째 튜플은 각 인자로 전달된 시퀀스나 iterable의 i번째 요소를 포함함
- 서로 길이가 다른 리스트가 인자로 들어오는 경우에는 길이가 짧은 쪽까지만 iteration이 이루어짐
- 공식 문서 - zip
# 사용 예시
mylist = [1, 2, 3]
new_list = [40, 50, 60]
for i in zip(mylist, new_list):
print (i)
(1, 40)
(2, 50)
(3, 60)
# 여러 개의 iterable 동시에 순회할 경우
list1 = [1, 2, 3, 4]
list2 = [100, 120, 30, 300]
list3 = [392, 2, 33, 1]
answer = []
for number1, number2, number3 in zip(list1, list2, list3):
print(number1 + number2 + number3)
# key리스트와 value리스트로 딕셔너리 생성하기
animals = ['cat', 'dog', 'lion']
sounds = ['meow', 'woof', 'roar']
answer = dict(zip(animals, sounds)) # {'cat': 'meow', 'dog': 'woof', 'lion': 'roar'}
# 리스트의 i번째, i+1번째 요소의 차
def solution(mylist):
answer = []
for number1, number2 in zip(mylist, mylist[1:]):
answer.append(abs(number1 - number2))
return answer
[모든 멤버의 타입 변환]
list1 = ['1', '100', '33']
list2 = []
for value in list1:
list2.append(int(value))
# map함수 활용
list1 = ['1', '100', '33']
list2 = list(map(int, list1))
Sequence Type
- int타입 인덱스를 통해, 원소에 접근할 수 있는 iterable
- list, str, tuple
[시퀀스 멤버를 하나로 이어붙이기]
my_list = ['1', '100', '33']
answer = ''
for value in my_list:
answer += value
# join함수 사용
my_list = ['1', '100', '33']
answer = ''.join(my_list)
728x90
'PROGRAMMING > PYTHON' 카테고리의 다른 글
[Python] 파이썬을 파이썬답게 - 반복문, 이진 탐색, 가장 큰 수 (0) | 2022.01.15 |
---|---|
[Python] 파이썬을 파이썬답게 - itertools 모듈 (0) | 2022.01.15 |
[Python] 파이썬을 파이썬답게 - 정수/문자열 다루기 (0) | 2022.01.15 |
[Python] heapq 모듈 사용법 (0) | 2022.01.11 |
[Python] 세트, 딕셔너리 관련 함수 (0) | 2022.01.10 |
댓글