[Tools]/Python 뿌시기

[NBcamp Python] ETC (F-string, 리스트 캄프리헨션, 람다)

pjw250 2024. 10. 19. 17:48

# F-string / F-fomat의 최신 버전

x = 10
print(f"변수 x의 값은 {x}입니다.")

 

# 리스트 캄프리헨션

# 리스트 캄프리헨션, 기본적인 구조
[표현식 for 항목 in iterable if 조건문]

# 예시: 1부터 10까지의 숫자를 제곱한 리스트 생성
squares = [x**2 for x in range(1, 11)]
print(squares)  # 출력: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

# 예시: 리스트에서 짝수만 선택하여 제곱한 리스트 생성
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares)  # 출력: [4, 16, 36, 64, 100]

# 예시: 문자열 리스트에서 각 문자열의 길이를 저장한 리스트 생성
words = ["apple", "banana", "grape", "orange"]
word_lengths = [len(word) for word in words]
print(word_lengths)  # 출력: [5, 6, 5, 6]

# 예시: 리스트 컴프리헨션을 중첩하여 2차원 리스트 생성
matrix = [[i for i in range(1, 4)] for j in range(3)]
print(matrix)  # 출력: [[1, 2, 3], [1, 2, 3], [1, 2, 3]]

 

# Lambda : 축약형 함수, 한 줄 함수

# lambda : 축약형 함수, 한줄 함수
add = lambda x, y: x + y
print(add(3, 5))  # 출력: 8

square = lambda x: x ** 2
print(square(4))  # 출력: 16

# 람다를 활용한 filter(조건 함수, 반복된 데이터)
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # 출력: [2, 4, 6, 8, 10]

# 람다를 활용한 map(연산 함수, 반복된 데이터)
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x ** 2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]