νμ΄μ¬ 리μ€νΈ μ»΄ν리ν¨μ , λμ λ리 μ»΄ν리ν¨μ μ λͺ¨λ κ²
리μ€νΈ μ»΄ν리ν¨μ (List Comprehension)
νμ΄μ¬ 리μ€νΈ μ»΄ν리ν¨μ μ κ°κ²°νκ² λ¦¬μ€νΈλ₯Ό μμ±νλ λ°©λ² μ€ νλλ‘, λ°λ³΅λ¬Έκ³Ό 쑰건문μ μ¬μ©νμ¬ λ¦¬μ€νΈλ₯Ό λ§λ€ μ μμ΅λλ€. 리μ€νΈ μ»΄ν리ν¨μ μ μ½λλ₯Ό κ°κ²°νκ² μ μ§νλ©΄μλ κ°λ ₯ν κΈ°λ₯μ μ 곡ν©λλ€.
μΌλ°μ μΈ λ¦¬μ€νΈ μ»΄ν리ν¨μ μ ꡬ쑰λ λ€μκ³Ό κ°μ΅λλ€:
[ννμ for νλͺ© in iterable if 쑰건]
- ννμ: κ° νλͺ©μ λν κ³μ°μ λλ ννμμ λνλ
λλ€.
- νλͺ©: λ°λ³΅ κ°λ₯ν(iterable) κ°μ²΄μμ κ°μ Έμ¨ κ°μ
λλ€.
- iterable: λ°λ³΅ κ°λ₯ν κ°μ²΄(리μ€νΈ, νν, λ¬Έμμ΄ λ±)λ₯Ό λνλ
λλ€.
- 쑰건: μ νμ μΌλ‘ ν¬ν¨ν 쑰건μ μ§μ ν©λλ€. 쑰건μ νμμ λ°λΌ μλ΅ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, 0λΆν° 9κΉμ§μ μ«μ μ€μμ μ§μλ§μ μ κ³±νμ¬ λ¦¬μ€νΈλ₯Ό λ§λλ κ²½μ°:
squares = [x**2 for x in range(10) if x % 2 == 0]
print(squares)
# μΆλ ₯: [0, 4, 16, 36, 64]
λ λ€λ₯Έ μλ‘, λ¬Έμμ΄ λ¦¬μ€νΈμμ λ¬Έμμ΄μ κΈΈμ΄κ° 3 μ΄μμΈ λ¬Έμμ΄λ§ μ ννλ κ²½μ°:
words = ["apple", "banana", "kiwi", "orange", "grape"]
filtered_words = [word for word in words if len(word) >= 3]
print(filtered_words)
# μΆλ ₯: ['apple', 'banana', 'kiwi', 'orange', 'grape']
λμ λ리 μ»΄ν리ν¨μ (Dictionary Comprehension)
νμ΄μ¬ λμ
λ리 μ»΄ν리ν¨μ
μ 리μ€νΈ μ»΄ν리ν¨μ
κ³Ό μ μ¬νκ² μ¬μ©λλ©°, λμ
λ리λ₯Ό μμ±νλ κ°κ²°ν λ°©λ²μ μ 곡ν©λλ€. λμ
λ리 μ»΄ν리ν¨μ
μ μΌλ°μ μΈ κ΅¬μ‘°λ λ€μκ³Ό κ°μ΅λλ€:
{ν€_ννμ: κ°_ννμ for νλͺ© in iterable if 쑰건}
- ν€_ννμ: κ° νλͺ©μμ μΆμΆν ν€λ₯Ό λνλ΄λ ννμμ
λλ€.
- κ°_ννμ: κ° νλͺ©μμ μΆμΆν κ°μ λνλ΄λ ννμμ
λλ€.
- νλͺ©: λ°λ³΅ κ°λ₯ν(iterable) κ°μ²΄μμ κ°μ Έμ¨ κ°μ
λλ€.
- iterable: λ°λ³΅ κ°λ₯ν κ°μ²΄(리μ€νΈ, νν, λ¬Έμμ΄ λ±)λ₯Ό λνλ
λλ€.
- 쑰건: μ νμ μΌλ‘ ν¬ν¨ν 쑰건μ μ§μ ν©λλ€. 쑰건μ νμμ λ°λΌ μλ΅ν μ μμ΅λλ€.
κ°λ¨ν μμ λ₯Ό ν΅ν΄ μ€λͺ
ν΄λ³΄κ² μ΅λλ€. 1λΆν° 5κΉμ§μ μ«μλ₯Ό ν€λ‘ νκ³ κ° μ«μμ μ κ³±μ κ°μΌλ‘ νλ λμ
λ리λ₯Ό λ§λλ κ²½μ°:
squares_dict = {x: x**2 for x in range(1, 6)}
print(squares_dict)
# μΆλ ₯: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
λ λ€λ₯Έ μλ‘, λ¬Έμμ΄ λ¦¬μ€νΈμμ κ° λ¬Έμμ΄μ κΈΈμ΄λ₯Ό ν€λ‘ νκ³ ν΄λΉ λ¬Έμμ΄μ κ°μΌλ‘ νλ λμ
λ리λ₯Ό μμ±νλ κ²½μ°:
words = ["apple", "banana", "kiwi", "orange", "grape"]
length_dict = {word: len(word) for word in words}
print(length_dict)
# μΆλ ₯: {'apple': 5, 'banana': 6, 'kiwi': 4, 'orange': 6, 'grape': 5}
λμ λ리μμ 'μ νμ'μ ν€λ‘ κ°λ λ°μ΄ν°λ§ μ μΈνλ κ²½μ°:
scores = {'μ² μ': 50, 'μν¬': 80, 'κΈΈλ': 90, 'μν¬': 60, 'μ νμ': 100}
scores = { name: score for name, score in scores.items() if name != 'μ νμ'}
print(scores)
#μΆλ ₯: {'κΈΈλ': 90, 'μν¬': 60, 'μν¬': 80, 'μ² μ': 50}
리μ€νΈ, λμ
λ리 μ»΄ν리ν¨μ
μ μ½λλ₯Ό κ°κ²°νκ² λ§λ€μ΄μ£Όκ³ , μ¬λ¬ μ€μ μ½λλ₯Ό ν μ€λ‘ ννν μ μμ΄ κ°λ
μ±μ ν₯μμμΌμ€λλ€.