본문 바로가기
Programming Language/Python

[파이썬] 리스트 내포 / Python list comprehension

by 뒹굴거리는프로도 2024. 11. 14.
반응형

 


 

파이썬에서 리스트 내포(list comprehension)는 특정 조건을 만족하는 요소들로 새로운 리스트를 만드는 간결하고 효율적인 방법입니다.

기본적인 형식은 다음과 같습니다.

[표현식 for 아이템 in 반복가능객체 if 조건]

 

이 구조를 사용하면, 반복 가능한 객체에서 아이템을 하나씩 가져와서, 조건을 만족하는 경우에만 해당 아이템을 가지고 표현식을 계산하여 새 리스트의 요소로 추가합니다.

 


 

예시


* 기본적인 리스트 내포 사용 예

0부터 9까지의 숫자 중에서 짝수만 포함하는 리스트를 만들고 싶다면, 다음과 같이 할 수 있습니다.

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # 출력: [0, 2, 4, 6, 8]

 

 

* 복잡한 표현식을 포함하는 경우

각 숫자의 제곱 값을 포함하는 리스트를 만들고 싶다면, 표현식 자리에 계산식을 넣습니다.

squares = [x**2 for x in range(10)]
print(squares)  # 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

 

 

* 중첩된 반복을 사용하는 경우

두 리스트의 모든 가능한 쌍을 포함하는 리스트를 만들고 싶다면, 다음과 같이 내포를 중첩할 수 있습니다.

pairs = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(pairs)  # 출력: [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

 

리스트 내포는 코드를 더 간결하고 읽기 쉽게 만들어 주며, 종종 더 빠른 실행 속도를 제공합니다. 그러나 표현식이 너무 복잡하거나 내포가 여러 단계에 걸쳐 중첩될 때는 코드의 가독성이 떨어질 수 있으므로 적절한 사용이 중요합니다.

 


https://docs.python.org/2/tutorial/datastructures.html

 

5. Data Structures — Python 2.7.18 documentation

5. Data Structures This chapter describes some things you’ve learned about already in more detail, and adds some new things as well. 5.1. More on Lists The list data type has some more methods. Here are all of the methods of list objects: list.append(x)

docs.python.org

해당 도큐먼트의 5.1.4 위치에서 Python List Comprehension에 대해 더 공부할 수 있습니다.

 

https://www.w3schools.com/python/python_lists_comprehension.asp

 

W3Schools.com

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

반응형