[Python] 코드를 한 줄로 줄이는 방법: 내포 표현식과 One-liners
반응형
1. 리스트 내포 (List Comprehension)
리스트 내포는 조건에 따라 요소를 필터링하거나 변환하여 새로운 리스트를 만들 수 있습니다. 예를 들어, 0부터 9까지의 숫자 중 짝수만 제곱한 리스트를 생성하려면 다음과 같이 작성할 수 있습니다.
squares = [x**2 for x in range(10) if x % 2 == 0]
print(squares) # [0, 4, 16, 36, 64]
2. 딕셔너리 내포 (Dictionary Comprehension)
딕셔너리 내포를 사용하면 키-값 쌍을 조건에 맞게 필터링하여 새로운 딕셔너리를 생성할 수 있습니다. 예를 들어, 0부터 4까지의 숫자와 그 제곱을 키-값으로 하는 딕셔너리는 다음과 같이 만들 수 있습니다.
squares_dict = {x: x**2 for x in range(5)}
print(squares_dict) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
3. 조건부 표현식 (Conditional Expression)
조건부 표현식을 사용하면 삼항 연산자를 통해 한 줄로 조건문을 처리할 수 있습니다. 예를 들어, 변수 x
가 짝수인지 홀수인지 확인하려면 다음과 같이 작성할 수 있습니다.
x = 5
is_even = "Even" if x % 2 == 0 else "Odd"
print(is_even) # "Odd"
4. 파일 읽기 - 리스트 내포 사용
리스트 내포를 사용하여 파일의 각 줄을 한 줄로 읽어들일 수 있습니다. 예를 들어, file.txt
파일의 모든 줄을 읽어 리스트에 저장하려면 다음과 같이 작성합니다.
lines = [line.strip() for line in open("file.txt")]
print(lines) # 파일의 각 줄이 리스트의 요소로 저장됩니다.
5. map()
과 filter()
를 사용한 한 줄 표현
map()
과 filter()
를 이용하면 반복적인 작업을 한 줄로 처리할 수 있습니다. 예를 들어, 리스트의 모든 요소를 제곱하거나, 짝수만 선택할 때 다음과 같이 작성할 수 있습니다.
squares = list(map(lambda x: x**2, range(10)))
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
evens = list(filter(lambda x: x % 2 == 0, range(10)))
print(evens) # [0, 2, 4, 6, 8]
이처럼 Python의 한 줄 표현식은 간결하고 효율적으로 코드를 작성할 수 있게 해줍니다.
반응형
'Tech & Development > Programming Languages' 카테고리의 다른 글
[Python] 제너레이터 (Generator) (0) | 2024.11.18 |
---|---|
[Python] 정규 표현식 (Regex) (0) | 2024.11.12 |
Python Packaging: pyproject.toml로 프로젝트 설정을 간편하게! (1) | 2024.04.25 |
Python 패키지 관리: requirements.txt 활용하기 (@ file) (0) | 2023.09.25 |
Jupyter Notebook에 가상 환경 커널 추가 (0) | 2023.08.21 |
댓글
이 글 공유하기
다른 글
-
[Python] 제너레이터 (Generator)
[Python] 제너레이터 (Generator)
2024.11.18 -
[Python] 정규 표현식 (Regex)
[Python] 정규 표현식 (Regex)
2024.11.12 -
Python Packaging: pyproject.toml로 프로젝트 설정을 간편하게!
Python Packaging: pyproject.toml로 프로젝트 설정을 간편하게!
2024.04.25 -
Python 패키지 관리: requirements.txt 활용하기 (@ file)
Python 패키지 관리: requirements.txt 활용하기 (@ file)
2023.09.25