본문 바로가기

CS/Python

List Comprehension

@List comprehension

-기존 List 사용해 간단히 다른 List 만드는 기법

-포괄적인 List, 포함되는 리스트라는 의미로 사용

-파이썬에서 가장 많이 사용되는 기법 중 하나

-일반적으로 for + append 보다 속도 빠름

 

 

 

실습)

# for loop + append 
result = []  # create a list

for i in range(10):
    result.append(i)
       
print(result)

 

 

# list Comprehension
result = [i for i in range(10)]
print(result)


# print even numbers only
result = [i for i in range(10) if i % 2 == 0]
print(result)

 

 

# Nested for loop
word_1 = "Hello"
word_2 = "World"
result = [i+j for i in word_1 for j in word_2]

printr(result)

 

 

#Nested for loop
case_1 = ["A", "B", "C"]
case_2 = ["D", "E", "A"]

result = [i+j for i in case_1 for j in case_2]
print(result)
# ['AD', 'AE', 'AA', 'BD', 'BE', 'BA', 'CD', 'CE', 'CA']


# add if
result = [i+j for i in case_1 for j in case_2 if not(i==j)]
result.sort()

print(result)
# ['AD', 'AE', 'BA', 'BD', 'BE', 'CA', 'CD', 'CE']

 

 

리스트 안에 리스트를 하나 더 넣어 2D리스트 형태로 만들 수 있음

case_1 = ["A", "B", "C"]
case_2 = ["D", "E", "F"]

result = [a+b for a in case_1 for b in case_2]
print(result)
# ['AD', 'AE', 'AF', 'BD', 'BE', 'BF', 'CD', 'CE', 'CF']


result = [[a+b for a in case_1] for b in case_2]
print(result)
# [['AD', 'BD', 'CD'], ['AE', 'BE', 'CE'], ['AF', 'BF', 'CF']]

 

 

# split + List Comprehension
words = 'The quick brown fox jumps over the lazy dog'.split()
print(words)

stuff = [[w.upper(), w.lower(), len(w)] for w in words]

for i in stuff:
    print(i)

 

 

 

'CS > Python' 카테고리의 다른 글

Asterisk  (0) 2021.01.11
Lambda & MapReduce  (0) 2021.01.11
Enumerate & Zip  (0) 2021.01.10
Split & Join  (0) 2021.01.10
Pythonic Code  (0) 2021.01.07

Tiny Star