리스트 객체를 이용하여 조합, 필터링 등의 추가적인 연산을 통하여 새로운 리스트 객체를 생성하는 경우, 리스트 내장은 매우 효율적이다.
<표현식> for <아이템> in <시퀀스 타입 객체> (if <조건식>) |
- 시퀀스 타입 객체 : 리스트, 튜플, 셋
- 아이템 : 리스트 객체의 개별 아이템
- 표현식 : 개별 <아이템>을 사용하여 사상함수 형태로 새로운 리스트 객체를 생성
- if 조건식 : 조건식에 맞는 원본 리스트의 아이템을 선별하는 경우. 생략가능
# [ 0, 1, 2, 3, 4 ] 요소 가진 리스트 만들기 (일반적인 문법)
lst = []
for i in range(5):
lst.append(i)
print(lst)
[0, 1, 2, 3, 4]
# List Comprehensions을 이용한 방법
lst = [ i for i in range(5) ]
print(lst)
[0, 1, 2, 3, 4]
# [ 0, 2, 4, 6, 8 ] 요소 가진 리스트 만들기 (일반적인 문법)
lst = []
for i in range(5):
i = i * 2
lst.append(i)
print(lst)
[0, 2, 4, 6, 8]
# List Comprehensions을 이용한 방법
lst = [ i * 2 for i in range(5) ]
print(lst)
[0, 2, 4, 6, 8]
# 이중 For문
nums = [1, 2, 3, 4]
fruit = ["Apples", "Peaches", "Pears", "Bananas"]
print([(i, f) for i in nums for f in fruit])
[(1, 'Apples'), (1, 'Peaches'), (1, 'Pears'), (1, 'Bananas'),
(2, 'Apples'), (2, 'Peaches'), (2, 'Pears'), (2, 'Bananas'),
(3, 'Apples'), (3, 'Peaches'), (3, 'Pears'), (3, 'Bananas'),
(4, 'Apples'), (4, 'Peaches'), (4, 'Pears'), (4, 'Bananas')]
# 이중 for문과 조건식
nums = [1, 2, 3, 4]
fruit = ["Apples", "Peaches", "Pears", "Bananas"]
print([(i, f) for i in nums for f in fruit])
[(1, 'Apples'), (1, 'Peaches'), (1, 'Pears'), (1, 'Bananas'),
(2, 'Apples'), (2, 'Peaches'), (2, 'Pears'), (2, 'Bananas'),
(3, 'Apples'), (3, 'Peaches'), (3, 'Pears'), (3, 'Bananas'),
(4, 'Apples'), (4, 'Peaches'), (4, 'Pears'), (4, 'Bananas')]
print([(i, f) for i in nums for f in fruit if f[0] == "P"])
[(1, 'Peaches'), (1, 'Pears'), (2, 'Peaches'), (2, 'Pears'),
(3, 'Peaches'), (3, 'Pears'), (4, 'Peaches'), (4, 'Pears')]
# list comprehension (리스트축약) if 문 사용법
[ "참값" if 조건 else "거짓값" for 변수 in [리스트|튜플|문자열] ]
# 리스트 / 튜플
lst = [ 1, -1, 2, -1, -3, 4, 1 ]
lst = [ '양수' if x > 0 else '음수' for x in lst ]
print(lst)
['양수', '음수', '양수', '음수', '음수', '양수', '양수']
# 문자열
lst = [ '대문자' if x.isupper() else '소문자' for x in 'AbCDdfd' ]
print(lst)
['대문자', '소문자', '대문자', '대문자', '소문자', '소문자', '소문자']
'Python > Python Basic Lesson' 카테고리의 다른 글
[파이썬 강의 문제풀이] 소수(prime number) 구하기 (0) | 2020.05.14 |
---|---|
Python Programming Basic - Append. Regular Expression (정규식 표현식) 기호 (0) | 2020.03.04 |
Python Programming Basic - Append. 문자열 포맷팅 (0) | 2020.03.02 |
Python Programming Basic - Append. 내장함수 (Built-in function) (0) | 2020.03.02 |
Python Programming Basic - 10. 날짜 다루기 (0) | 2020.03.02 |
Python Programming Basic - 9. 파일읽고 / 쓰기 (0) | 2020.03.02 |
Python Programming Basic - 8. 함수 (function) (0) | 2020.03.02 |
Python Programming Basic - 7. 딕셔너리 함수 (0) | 2020.03.02 |