공부/Python
[파이썬 기초] 리스트 내장 표기
mariabeetle
2017. 10. 3. 03:07
1. List Comprehensions
- 복잡한 값을 가지는 리스트, 튜플. Dictionary를 손쉽게 생성하기 위한 표기 방법이다.
[식 for . . in . .]
1 2 3 4 5 6 7 | data = [i*2 for i in range(1, 6)] print(data) # [2, 4, 6, 8, 10] data = list(map(lambda x : x*2, range(1, 6))) print(data) # [2, 4, 6, 8, 10] | cs |
1 2 3 4 5 6 7 8 9 | # [1, 3, 5, 7, 9] data = [(i*2 - 1) for i in range(1, 6) ] print(data) data = [i for i in range(1, 11, 2) ] print(data) data = [i for i in range(1, 11) if i%2 == 1] print(data) | cs |
2. 리스트 내장 표기에서 if 사용하기
[ 식 for ... in ... if ... ]
1 2 3 4 5 | [i for i in range(1, 11)] # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [i for i in range(1, 11) if i % 2==1] # [1, 3, 5, 7, 9] | cs |
- 중첩된 내장 표기
1 2 3 4 | base = [1, 2, 3] result = [ (x, y) for x in base for y in base] print(result) # [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)] | cs |
1 2 3 4 5 | base = [1, 2, 3] result = [ (x, y) for x in base for y in base if x != y] print(result) # [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)] |
3. 삼항연산자
변수 = (True 값) if ( 조건 ) else ( False 값 )
4. 여러 내장 표기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | [x**2 for x in [1, 2, 3]] # [1, 4, 9] { (x+y) for x in [1, 2, 3] for y in [1, 2, 3] } # {2, 3, 4, 5, 6} [ (x+y) for x in [1, 2, 3] for y in [1, 2, 3] ] # [2, 3, 4, 3, 4, 5, 4, 5, 6] {"h"+str(x) : x*5 for x in range(1, 4)} # {'h3':15, 'h1':5, 'h2':10} # generator gen = ( x**2 for x in [1, 2, 3]) for i in gen: print(i) # 1 # 4 # 9 | cs |