리스트 축약식 (list comprehension)
[ 표현식 for 변수 in 반복자 if 조건 표현식 ]
- if 조건 표현식 부분은 생략해도 된다.
if 조건 표현식 없이
1
2
3
4
# if 조건 없이
list1 = [1,2,3,4,5,6]
[x**2 for x in list1]
결과: [ 1,4,9,16,25,36 ]
1
2
3
4
5
# 또는
[x**2 for x in range(1,7)]
# 또는
list(map(lambda x : x**2, list1))
if 조건 표현식과 함께
1
2
3
list1 = [1,2,3,4,5,6]
[x for x in list1 if x > 3]
결과: [ 4,5,6 ]
1
2
# 또는
list(filter(lambda x : x > 3, list1))
결과: [ 4,5,6 ]
리스트 중첩시키기
1
2
# 중첩리스트 예 1
list1 = [[0,1],[1,2],[3,4]]
1
2
3
4
5
6
# 중첩리스트 예 2
list2 = [[0 for i in [1,2]] for i in [1,2,3]]
# or
list2 = [[0 for i in range(2)] for i in range(3)]
결과: [[ 0,0 ], [ 0, 0 ], [ 0, 0 ]]
리스트의 슬라이싱
리스트 슬라이싱 결과는 원래 리스트의 ‘부분 복사본’ 이다.
원본 리스트는 손상되지 않는다.