먼저 리스트를 생성하는 기본 방법들이 있다
r1 = [1, 2, 3]
r2 = []
r3 = [1, 2, [3, 4]]
[1, 2, 3, 4, 5]의 모든 값을 두 배씩 증가시킨 값을 지니는 리스트를 만들어라.
r1 = [1, 2, 3, 4, 5]
r2 = []
for i in r1:
r2.append(i*2) # 두 배씩 증가시켜서 리스트 r2에 저장
r2
-> [2, 4, 6, 8, 10]
위의 코드를 for루프를 사용하지 않는 형태로 대신할 수 있다.
리스트 컴프리핸션
r1 = [1, 2, 3, 4, 5]
r2 = [x * 2 for x in r1] # 리스트 컴프라핸션의 기본 구조
r2
-> [2, 4, 6, 8, 10]
위의 코드를 해석해보면 r1의 값들을 하나씩 x에 넣고, x * 2의 결과를 만들어 리스트에 저장한다.
조건 필터 추가하기
r1 = [1, 2, 3, 4, 5]
r2 = []
for i in r1:
if i % 2: # i가 홀수인 경우
r2.append( i * 2) # i * 2의 결과를 리스트에 담는다.
r2
=> [2, 6, 10]
위의 코드를 리스트 컴프리핸션을 기반으로 간단하게 작성할 수 있다.
r1 = [1, 2, 3, 4, 5]
r2 = [x * 2 for x in r1 if x % 2] # if절이 추가된 리스트 컴프리핸션
r2
=> [2, 6, 10]
리스트 컴프리핸션에 for문이 한번 더 들어가는 경우
r1 = ['Black', 'White']
r2 = ['Red', 'Blue', 'Green']
r3 = []
for i in r1:
for j in r2:
r3.append(t + p)
r3
=> ['BlackRed', 'BlackBlue', 'BlackGreen', 'WhiteRed', 'WhiteBlue', 'WhiteGreen']
위의 코드를 리스트 컴프리핸션을 기반으로 간단하게 작성할 수 있다.
r3 = [t + p for i in r1 for j in r2]
구구단 같은 경우도 리스트 컴프리핸현을 이용하면 간단하게 작성할 수 있다.
r = [i * j for i in range(2, 10) for j in range(1, 10)]
이중 for문에 조건 필터 추가
구구단 결과 중에서 짝수인 값들만 리스트에 추가시키자.
r = [i * j for i in range(2, 10) for j in range(1, 10) if (i * j) % 2]
'python' 카테고리의 다른 글
파이썬의 메모리 관리 (0) | 2022.04.06 |
---|---|
제너레이터 함수 (0) | 2022.03.06 |
리스트 컴프리헨션(2) (0) | 2022.03.02 |
map과 filter (0) | 2022.03.01 |
Iterable 객체와 Iterator 객체 (0) | 2022.01.24 |