개요
리스트 컴프리헨션(List Comprehension)은 기존의 리스트를 활용해 새로운 리스트를 만들 수 있습니다.
이를 짧은 구문으로 나타낼 수 있습니다.
조건문, for문, 수식이나 함수를 적용할 수 있습니다.
아래와 같은 형식을 갖추고 있습니다.
newlist = [expression for item in iterable if condition == True]
for 문
iterable에 리스트, range, 튜플, 집합이 들어갈 수 있습니다.
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits]
newlist = [x for x in range(10)]
for 문을 여러 번 중첩해서 사용할 수 있습니다.
newlist = [(x, y) for x in range(2) for y in range(3)]
print(newlist)
# 다음과 같이 출력됩니다.
'''
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
'''
if 조건문
iterable 뒤에 if 조건문을 붙일 수 있습니다.
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if x != "apple"]
print(newlist)
# 다음과 같이 표시됩니다.
'''
['banana', 'cherry', 'kiwi', 'mango']
'''
필요하다면 if 조건문을 여러 번 중첩해서 사용할 수 있습니다.
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if x != "apple" if x != "banana"]
print(newlist)
# 다음과 같이 출력됩니다.
'''
['cherry', 'kiwi', 'mango']
'''
수식 적용
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x.upper() for x in fruits]
print(newlist)
# 다음과 같이 표시됩니다.
'''
['APPLE', 'BANANA', 'CHERRY', 'KIWI', 'MANGO']
'''
if 조건문을 적용할 수도 있습니다.
위에서는 iterable에 적용되는 if문을 for문의 오른쪽에 적었지만, 여기서는 수식에 적용되는 if문을 for문의 왼쪽에 적게됩니다. 반드시 if 문 다음에는 else문이 와야 합니다.
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x if x != "banana" else "orange" for x in fruits]
print(new_list)
# 다음과 같이 출력됩니다.
'''
['apple', 'orange', 'cherry', 'kiwi', 'mango']
'''
참고자료
https://www.w3schools.com/python/python_lists_comprehension.asp
'python > basic' 카테고리의 다른 글
[Python] iterable (0) | 2023.06.03 |
---|---|
[Python] 컬렉션(Collection) (0) | 2023.06.02 |
[Python] 연산자(Operators) - (7) 비트 연산자 (0) | 2023.06.02 |
[Python] 연산자(Operators) - (6) 멤버 연산자 (0) | 2023.05.31 |
[Python] 연산자(Operators) - (5) 식별 연산자 (0) | 2023.05.31 |