파이썬 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜, λ”•μ…”λ„ˆλ¦¬ μ»΄ν”„λ¦¬ν—¨μ…˜μ˜ λͺ¨λ“  것

2023. 12. 12. 00:01Β·ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Python

 

 

리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜(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}

 



리슀트, λ”•μ…”λ„ˆλ¦¬ μ»΄ν”„λ¦¬ν—¨μ…˜μ€ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ λ§Œλ“€μ–΄μ£Όκ³ , μ—¬λŸ¬ μ€„μ˜ μ½”λ“œλ₯Ό ν•œ μ€„λ‘œ ν‘œν˜„ν•  수 μžˆμ–΄ 가독성을 ν–₯μƒμ‹œμΌœμ€λ‹ˆλ‹€.

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ > Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

파이썬 νŒ¨ν‚Ή(packing)κ³Ό μ–ΈνŒ¨ν‚Ή(unpacking)의 λͺ¨λ“  것  (3) 2023.12.17
파이썬 map, filter ν•¨μˆ˜(with. iterator)  (1) 2023.12.17
파이썬 μŠ€νŽ˜μ…œ λ©”μ„œλ“œμ˜ λͺ¨λ“  것(__init__, __str__, __len__ λ“±)  (0) 2023.12.11
파이썬 μ˜ˆμ™Έμ²˜λ¦¬(Exception)의 λͺ¨λ“  것  (2) 2023.12.10
파이썬 λͺ¨λ“ˆκ³Ό νŒ¨ν‚€μ§€μ˜ λͺ¨λ“  것  (1) 2023.12.09
'ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • 파이썬 νŒ¨ν‚Ή(packing)κ³Ό μ–ΈνŒ¨ν‚Ή(unpacking)의 λͺ¨λ“  것
  • 파이썬 map, filter ν•¨μˆ˜(with. iterator)
  • 파이썬 μŠ€νŽ˜μ…œ λ©”μ„œλ“œμ˜ λͺ¨λ“  것(__init__, __str__, __len__ λ“±)
  • 파이썬 μ˜ˆμ™Έμ²˜λ¦¬(Exception)의 λͺ¨λ“  것
μ„œμ•„λž‘πŸ˜ƒ
μ„œμ•„λž‘πŸ˜ƒ
Just Do ItπŸ’ͺ
  • μ„œμ•„λž‘πŸ˜ƒ
    G-Stack
    μ„œμ•„λž‘πŸ˜ƒ
  • 전체
    였늘
    μ–΄μ œ
    • 전체보기 (144)
      • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ (78)
        • C++ 기초 (28)
        • C++ μ‘μš© (18)
        • Python (18)
        • JavaScript & NodeJS (0)
        • Go (12)
        • React & NextJS (2)
        • Java (0)
      • AI (2)
      • 컴퓨터 ꡬ쑰 & 운영체제 (31)
      • μ•Œκ³ λ¦¬μ¦˜ (12)
      • λ°μ΄ν„°λ² μ΄μŠ€ (5)
      • λ„€νŠΈμ›Œν¬ (3)
      • λ””μžμΈνŒ¨ν„΄ (5)
      • μ„œλΉ„μŠ€ & 툴 (7)
      • νŠΈλ Œλ“œ&이슈 (1)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

    • GμŠ€νƒμ˜ 기술 λΈ”λ‘œκ·Έ
  • 인기 κΈ€

  • νƒœκ·Έ

    포인터
    λ°°μ—΄
    λ³€μˆ˜
    go
    μ•Œκ³ λ¦¬μ¦˜
    RAM
    μŠ€νƒ
    반볡문
    μž¬κ·€
    ν•˜λ“œλ””μŠ€ν¬
    λ©”λͺ¨λ¦¬
    ν•¨μˆ˜
    c
    cpu
    쑰건문
    νŒ¨ν‚€μ§€
    νŒŒμΌμž…μΆœλ ₯
    fork
    상속
    컴퓨터
    Thread
    λ””μžμΈνŒ¨ν„΄
    component
    λ°μ΄ν„°λ² μ΄μŠ€
    가상메λͺ¨λ¦¬
    STD
    pointer
    init
    c++
    파이썬
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.6
μ„œμ•„λž‘πŸ˜ƒ
파이썬 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜, λ”•μ…”λ„ˆλ¦¬ μ»΄ν”„λ¦¬ν—¨μ…˜μ˜ λͺ¨λ“  것
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”