MajorClass/Data Science
[데이터사이언스] python List Comprehension
쿠뱃봉
2022. 12. 10. 10:41
1. List Comprehension 이란?
size = 10
arr = [0] * size
for i in range(len(size)):
arr[i] = i * 2
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
위와 같은 코드를
아래와 같이 두줄로 간단하게 표현.
size=10
arr=[i*2 for i in range(size)]
print(arr)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
2. List Comprehension의 여러가지 예
ex1)
size=10
arr=[i*2 for i in range(size)]
new_arr=[n*n for n in arr]
print(new_arr)
[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
ex2)
1부터 10까지의 값에서 짝수만 원소로 갖는 리스트를 만들어라.
arr=[n for n in range(1,31) if n%2==0]
print(arr)
[2, 4, 6, 8, 10]
ex3)
1부터 30까지의 값에서 2의 배수이며 3의 배수인 원소를 갖는 리스트를 만들어라.
arr=[n for n in range(1,31) if n%2==0 and n%3==0]
print(arr)
ex4)
1부터 30까지의 값에서 2의 배수이거나 3의 배수인 원소를 갖는 리스트를 만들어라.
arr=[n for n in range(1,31) if n%2==0 or n%3==0]
print(arr)
ex5)
2차원 배열을 1차원 리스트로 만들기
arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12],
]
flat_one= [n for row in arr for n in row]
print(flat_one)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ex6)
arr의 2차원은 유지하면서 각 원소의 값을 제곱하기
squared_list=[[n*n for n in row] for row in arr]
print(squared_list)
[[1, 4, 9], [16, 25, 36], [49, 64, 81], [100, 121, 144]]
reference
https://shoark7.github.io/programming/python/about-list-comprehension-python