Archive

[파이썬 기초] 리스트 내장 표기 본문

공부/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(16)]
print(data)
# [2, 4, 6, 8, 10]
 
data = list(map(lambda x : x*2range(16)))
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 - 1for i in range(16) ]
print(data)
 
data = [i for i in range(1112) ]
print(data)
 
data = [i for i in range(111if i%2 == 1]
print(data)

cs


2. 리스트 내장 표기에서 if 사용하기

[ 식 for ... in ... if ... ]

1
2
3
4
5
[i for i in range(111)]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 
[i for i in range(111if i % 2==1]
# [1, 3, 5, 7, 9]
cs

- 중첩된 내장 표기

1
2
3
4
base = [123]
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 = [123]
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 [123]]
# [1, 4, 9]
 
{ (x+y) for x in [123for y in [123] }
# {2, 3, 4, 5, 6}
 
[ (x+y) for x in [123for y in [123] ]
# [2, 3, 4, 3, 4, 5, 4, 5, 6]
 
{"h"+str(x) : x*5 for x in range(14)}
# {'h3':15, 'h1':5, 'h2':10}
 
# generator
gen = ( x**2 for x in [123])
for i in gen:
    print(i)
# 1
# 4
# 9
cs


'공부 > Python' 카테고리의 다른 글

[파이썬 기초] 클래스  (0) 2017.10.03
[파이썬 기초] 데코레이터  (0) 2017.10.03
[파이썬 기초] 정규표현  (0) 2017.10.03
[파이썬 기초] 파일 처리  (0) 2017.10.02
[파이썬 기초] 모듈  (0) 2017.10.02
Comments