파이썬 map, filter ν•¨μˆ˜(with. iterator)

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

 

 

iterator(반볡자)

νŒŒμ΄μ¬μ—μ„œ iterator(반볡자)λŠ” 순회 κ°€λŠ₯ν•œ 객체λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ°œλ…μž…λ‹ˆλ‹€. IteratorλŠ” __iter__와 __next__ λ©”μ„œλ“œλ₯Ό κ΅¬ν˜„ν•œ 객체둜, __iter__λŠ” 자기 μžμ‹ μ„ λ°˜ν™˜ν•˜κ³ , __next__λŠ” λ‹€μŒ 값을 λ°˜ν™˜ν•©λ‹ˆλ‹€. μ΄λ•Œ, 더 이상 λ°˜ν™˜ν•  값이 없을 λ•Œ StopIteration μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œμΌœ 순회λ₯Ό μ’…λ£Œν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, κ°„λ‹¨ν•œ iteratorλ₯Ό κ΅¬ν˜„ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€

class MyIterator:
    def __init__(self, start, end):
        self.start = start
        self.end = end

    def __iter__(self):
        return self

    def __next__(self):
        if self.start >= self.end:
            raise StopIteration
        else:
            self.start += 1
            return self.start - 1

# μ‚¬μš© μ˜ˆμ‹œ
my_iter = MyIterator(1, 5)
for num in my_iter:
    print(num)

 

 

 

mapκ³Ό filter

이제 mapκ³Ό filter ν•¨μˆ˜μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

  1. map ν•¨μˆ˜:
    • map ν•¨μˆ˜λŠ” iterable의 각 μš”μ†Œμ— ν•¨μˆ˜λ₯Ό μ μš©ν•˜μ—¬ μƒˆλ‘œμš΄ iterable을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
    • ꡬ문: map(function, iterable)
    예제:
    # 각 숫자λ₯Ό μ œκ³±ν•˜λŠ” 예제 
    numbers = [1, 2, 3, 4, 5] 
    squared = map(lambda x: x**2, numbers) 
    print(list(squared))​



  2. filter ν•¨μˆ˜:
    • filter ν•¨μˆ˜λŠ” iterable의 μš”μ†Œ μ€‘μ—μ„œ 쑰건을 λ§Œμ‘±ν•˜λŠ” μš”μ†Œλ§Œ λ‚¨κΈ°λŠ” 역할을 ν•©λ‹ˆλ‹€.
    • ꡬ문: filter(function, iterable)
    예제:
# 짝수만 λ‚¨κΈ°λŠ” 예제 
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
even_numbers = filter(lambda x: x % 2 == 0, numbers) 
print(list(even_numbers))

 

 

μ΄λŸ¬ν•œ ν•¨μˆ˜λ“€μ€ 파이썬의 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° μŠ€νƒ€μΌμ„ μ§€μ›ν•˜λ©°, μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ μž‘μ„±ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ μž…λ ₯κ³Ό 좜λ ₯ κ°„μ˜ 관계λ₯Ό κ°•μ‘°ν•˜κ³ , μƒνƒœ 변경을 ν”Όν•˜λ €λŠ” νŒ¨λŸ¬λ‹€μž„ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.

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

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

Mutableκ³Ό Immutable 객체  (1) 2024.04.29
파이썬 νŒ¨ν‚Ή(packing)κ³Ό μ–ΈνŒ¨ν‚Ή(unpacking)의 λͺ¨λ“  것  (3) 2023.12.17
파이썬 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜, λ”•μ…”λ„ˆλ¦¬ μ»΄ν”„λ¦¬ν—¨μ…˜μ˜ λͺ¨λ“  것  (0) 2023.12.12
파이썬 μŠ€νŽ˜μ…œ λ©”μ„œλ“œμ˜ λͺ¨λ“  것(__init__, __str__, __len__ λ“±)  (0) 2023.12.11
파이썬 μ˜ˆμ™Έμ²˜λ¦¬(Exception)의 λͺ¨λ“  것  (2) 2023.12.10
'ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • Mutableκ³Ό Immutable 객체
  • 파이썬 νŒ¨ν‚Ή(packing)κ³Ό μ–ΈνŒ¨ν‚Ή(unpacking)의 λͺ¨λ“  것
  • 파이썬 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜, λ”•μ…”λ„ˆλ¦¬ μ»΄ν”„λ¦¬ν—¨μ…˜μ˜ λͺ¨λ“  것
  • 파이썬 μŠ€νŽ˜μ…œ λ©”μ„œλ“œμ˜ λͺ¨λ“  것(__init__, __str__, __len__ λ“±)
μ„œμ•„λž‘πŸ˜ƒ
μ„œμ•„λž‘πŸ˜ƒ
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μŠ€νƒμ˜ 기술 λΈ”λ‘œκ·Έ
  • 인기 κΈ€

  • νƒœκ·Έ

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

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.6
μ„œμ•„λž‘πŸ˜ƒ
파이썬 map, filter ν•¨μˆ˜(with. iterator)
μƒλ‹¨μœΌλ‘œ

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