list comprehension
- 기존 List를 사용하여 간단히 다른 List를 만드는 기법
- 포괄적인 List,포함되는 리스트라는 의미로 사용됨
- 파이썬에서 가장 많이 사용되는 기법중 하나
- 일반적으로 for + append보다 속도가 빠름
example (1/4)
# example
result = []
for i in range(10):
result.append(i)
result
result = [i for i in range(10)]
result
[0,1,2,3,4,5,6,7,8,9]
result = [i for i in range(10) if i %2 == 0]
result
[0,2,4,6,8]
example (2/4) Nested For loop
word_1 = "Hello"
word_2 = "World"
result = [i+j for i in word_1 for j in word_2]
# Nested For loop
result
['HW',
'Ho',
'Hr',
'Hl',
'Hd',
'eW',
'eo',
'er',
'el',
'ed',
'lW',
'lo',
'lr',
'll',
'ld',
'lW',
'lo',
'lr',
'll',
'ld',
'oW',
'oo',
'or',
'ol',
'od']
example (3/4) Filter
case_1 = ["A","B","C"]
case_2 = ["D","E","A"]
result = [i+j for i in case_1 for j in case_2]
result
['AD', 'AE', 'AA', 'BD', 'BE', 'BA', 'CD', 'CE', 'CA']
result = [i+j for i in case_1 for j in case_2 if not(i==j)]
# Filter : i랑 j가 같다면 List에 추가하지 않음
# [i+j if not(i==j) else i for i in case_1 for j in case_2]
result
['AD', 'AE', 'BD', 'BE', 'BA', 'CD', 'CE', 'CA']
example (4/4)
words = "The quick brown fox jumps over the lazy dog".split()
print(words)
# 문장을 빈칸 기준으로 나눠 list 변환
['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
stuff = [[w.upper(),w.lower(),len(w)] for w in words]
for i in stuff:
print(i)
# list의 각 elemente들을 대문자,소문자,길이로 변환하여 two dimensional list로 변환
['THE', 'the', 3]
['QUICK', 'quick', 5]
['BROWN', 'brown', 5]
['FOX', 'fox', 3]
['JUMPS', 'jumps', 5]
['OVER', 'over', 4]
['THE', 'the', 3]
['LAZY', 'lazy', 4]
['DOG', 'dog', 3]
반응형
'기타' 카테고리의 다른 글
[Python] zip (0) | 2023.01.17 |
---|---|
[Python] enumerate (0) | 2023.01.17 |
[Python] 재귀함수 (recursive Function) (0) | 2023.01.17 |
[Python] 문자열 특징 - 인덱싱, 슬라이싱 (0) | 2023.01.17 |
[R] 리스트, 데이터프레임 (list,Data Frames) (0) | 2022.10.09 |