본문 바로가기
Dev/Python

[Python/파이썬] 파이썬의 리스트 컴프리헨션(list comprehension)

by 석맨.class 2024. 2. 15.
반응형

n * n 의 2차원 배열을 생성해보아라 라고 했을때 나는 다음과 같이 작성했다.

n = 4
arr = []

for i in range(n):
    arr.append([])

파이썬 기초를 배웠다면 누구나 이해할 수 있는 코드가 완성되었다.

다만 여기서 불편한 점으로 반복문의 변수 i 가 있다.

반복문에서 사용하지 않는 변수는 _ 로 표현할 수 있다.
해당 변수는 파이썬에서 사용되지않는 변수를 의미하는 관례적 표현이다.

  • 딱히 _ 를 사용해도 메모리를 아낄 수 있는 것은 아니다. 단순히 사용되지 않는 다는 것을 명시적으로 표시하는 것.
n = 4
arr = []
for _ in range(n):
    arr.append([])

리스트 컴프리헨션

파이썬에는 리스트 컴프리헨션이라는 리스트 생성 도구가 있다.
표현식 for x in range(n)

위와 같이 리스트를 for 문을 사용하여 간단하게 선언할 수 있다.

test = [ i for i in range(4) ]
print('test ' , test)
# test  [0, 1, 2, 3]

응용하여 두개의 리스트의 중복값만 가지는 리스트를 만들 수 있다.

# 중복 데이터만 있는 리스트를 반환하기
numbers1 = [1,2,3,4,5,6,7]
numbers2 = [3,4,5,7]

result = [ num1 for num1 in numbers1 if num1 in numbers2 ]
print(result)
# [3, 4, 5, 7]

num1 for num1 in numbers1 -> numbers1 리스트의 원소를 순환하며 해당 원소값이
if num1 in numbers2 -> numbers2 리스트에 있는지 검사하고 있으면 반환한다.

'Dev > Python' 카테고리의 다른 글

[Python/파이썬] 딕셔너리 컴프리헨션(dictionary comprehension)  (0) 2024.02.23
[Udemy강의] day1 , day2  (0) 2024.01.18
날짜 형식  (0) 2023.12.05
python - 함수 선언 시 -> 화살표  (0) 2023.09.22
with 문  (0) 2023.09.22