[파이썬] 파이썬 리스트 컴프리헨션 / 프로그래머스 메뉴 리뉴얼
미음제
·2022. 1. 13. 17:15
정수 1부터 10까지가 담긴 리스트를 생성하려면 파이썬에서 다음과 같이 작성한다
arr = []
for i in range(1, 11):
arr.append(i)
print(arr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
반복문을 통해 정수를 리스트에 넣는 것이다. 이것을 반복문을 활용한 컴프리헨션이라고 한다. 1부터 10까지 담긴 리스트를 생성하는 리스트 컴프리헨션의 형태는 다음과 같다.
리스트 컴프리헨션 형태
[i for i in range(1, 10)]
리스트 = [ 수식 for 항목 in range() ] 형식
반복문을 활용해 1부터 10까지가 담긴 리스트를 생성하는 것을 리스트 컴프리헨션 형태로 만들면 다음과 같다.
arr = []
for i in range(1, 11):
arr.append(i)
print(arr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
brr = [i for i in range(1, 11)]
print(brr) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
리스트 arr와 brr가 동일한 값을 갖게 된다. 리스트 컴프리헨션이 어떻게 작동하는지 간단하게 보면 다음과 같다.
리스트 컴프리헨션 조건문
조건문을 사용하는 것은 간단하다. [] 내에 for문을 작성한 후 for문 뒤에 작성하면 된다.
arr = []
for i in range(1, 11):
if i%2 == 0:
arr.append(i)
print(arr) # [2, 4, 6, 8, 10]
# 리스트 컴프리헨션 조건문
arr = [i for i in range(1, 11) if i%2 == 0]
print(arr) # [2, 4, 6, 8, 10]
arr = [i for i in range(1,11) if i%2 == 0 and i>= 4]
print(arr) # [4, 6, 8, 10]
리스트 컴프리헨션 다중 반복문
리스트 컴프리헨션은 다중 반복문을 지원하고, 쓰인 순서에 따라 작동한다.
a = 'abc'
b = '123'
arr = [i for i in a]
brr = [i for i in b]
tmp = [(i, j) for i in arr for j in brr]
print(tmp)
"""
[
('a','1'), ('a','2'), ('a','3'),
('b','1'), ('b','2'), ('b','3'),
('c','1'), ('c','2'), ('c','3'),
]
"""
예제
예제 풀이
반응형
'Developer > Python' 카테고리의 다른 글
[파이썬] 구현 (0) | 2022.03.20 |
---|---|
[파이썬] 그리디(Greedy) 알고리즘 (0) | 2022.03.11 |
[파이썬] 파이썬 heapq(힙큐) / 프로그래머스 더 맵게 (0) | 2022.01.11 |
[파이썬] 몫과 나머지 (0) | 2022.01.03 |
[파이썬] ord(), chr() 함수 / 프로그래머스 시저 암호 (0) | 2021.12.27 |