-
[데이터사이언스] python List ComprehensionMajorClass/Data Science 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
'MajorClass > Data Science' 카테고리의 다른 글
[데이터사이언스] Plot(percentile/boxplot/histogram) (0) 2022.12.10 [데이터사이언스] Data의 Attributes의 types(Norminal/Binary/Ordinal/Numeric) (0) 2022.12.10 [데이터사이언스] linear regression에서 t-test와 confidence interval (0) 2022.12.09 [데이터사이언스] gradient descent에 기반한 linear regression (0) 2022.12.09 [데이터사이언스] Logistic regression의 cost function (0) 2022.12.09