1. 리스트 생성 방법

 - 리스트를 생성하는 방법

1 r1 = [1, 2, 3] 리스트를 생성하는 가장 일반적인 방법
2 r2 = [ ] 빈 리스트를 생성하는 방법
3 r3 = [1, 2, [3, 4]] 리스트가 포함된 리스트를 생성하는 방법

 

 - 리스트 함수를 호출해서 리스트를 생성하는 방법

1 r4 = list("Hello") 문자열을 전달해서 리스트를 생성
2 r5 = list((5, 6, 7)) 튜플을 전달해서 리스트를 생성
3 r6 = list(range(0,5)) 레인지를 전달해서 리스트를 생성

 

 - 그러나 조건이 복잡한 리스트를 만들 경우,

 ex) [1, 2, 3, 4, 5]의 모든 값을 두 배씩 증가시킨 값을 지니는 리스트를 만들어라.

 

 - 위와 같이 for 루프를 이용하면 됨

 - r2와 같이 일단 빈 리스트를 생성한 뒤에, 2씩 증가하여 리스트 r2에 저장하게끔 함

 

 

 

 - for 루프를 사용하지 않는 방법도 있는데, 그것이 리스트 컴프리헨션(Comprehension)’이라고 함

 - x *2 : 이 리스트의 값은 x * 2의 결과들로 이루어짐

 - for x in r1 : xr1에 있는 값들임

 - , r2 = [x * 2 for x in r1] : r1의 값들을 하나씩 x에 넣어서, x * 2의 결과를 만들어 리스트에 저장하겠음

 

 - [1, 2, 3, 4, 5]의 모든 값을 10씩 증가시킨 값을 지니는 리스트를 만들어라.

 

2. 조건 필터 추가 하기

 - i가 홀수인 경우에만 2를 곱하는 문장을 실행하는 조건이 달린 for 루프

 

 - 이를 리스트 컴프리헨션을 이용하여 작성하면,

 - for x in r1 : r1의 값들을 하나씩 x에 넣어서

 - if x % 2 : x % 2True인지 확인하고,

 - x * 2 : True이면 x * 2를 리스트에 추가하기

 

 - cf) 리스트 컴프리헨션은 일종의 규칙이므로 이해보다는 적용에 무게를 둬야함

 

 

3. 리스트 컴프리헨션에 for 한번 더 들어가는 경우

 - 옷의 상의와 하의의 색상 정보를 갖는 리스트를 만들고, 모든 조합의 색을 값으로 담는 리스트를 만들 경우 (확률과 통계 느낌)

r1 = [‘Black’, ‘White’’]
r2 = [‘Rec’, ‘Blue’, ‘Green’]

 

 - for 루프를 기반으로 하면,

 

 

- 이를 리스트 컴프리헨션으로 바꾸면,

 - for t in r1 for p in r2 : 모든 tp의 조합을 생성

 - t + p : t + p의 결과를 만들어서 리스트에 저장

 

 - 다음과 같은 리스트도 리스트 컴프리헨션을 이용하여 간단히 불러낼 수 있음

 - for n in range(2, 10) for m in range(1, 10) : 모든 nm의 조합을 생성해서

 - n * m : n * m의 결과를 만들어서 리스트에 저장해라

 

 

4. 이중 for 루프에 조건 필터 추가

 - 이중 for 루프 기반의 리스트 컴프리헨션도 if 절을 추가할 수 있음

 - 구구단의 결과를 담는 리스트에서 그 결과가 짝수인 값들만 리스트에 포함시키기

 - for n in range(2, 10) for m in range(1, 10)  : 모든 nm의 조합을 생성해서

 - if (n * m) % 2 : n * m의 결과가 2의 배수인 nm의 조합만을 가지고

 - n * m : n * m의 결과를 만들어서 리스트에 저장한다.

+ Recent posts