๐ŸŽ/Python

[Python] ๋ฆฌ์ŠคํŠธ์—์„œ ์›ํ•˜๋Š” ์š”์†Œ๋งŒ ์ถ”์ถœํ•˜๊ธฐ

์œ ์ €001 2022. 1. 19. 17:38

๋ฆฌ์ŠคํŠธ์—์„œ ํ™€์ˆ˜์ธ ๋ฐ์ดํ„ฐ๋งŒ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜๋Š” ํ•จ์ˆ˜

#์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ
num_list = {1, 5, 7, 15, 16, 22, 28, 29}

def get_odd_num(num_list):
    # TODO

print(get_odd_num(num_list))
#์ถœ๋ ฅ
[1, 5, 7, 15, 29]

โ“ ๋ฆฌ์ŠคํŠธ ์ž์ฒด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์•„์˜ค๋Š” ํ•จ์ˆ˜

# ๋ฐฉ๋ฒ• 1

#์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ
num_list = {1, 5, 7, 15, 16, 22, 28, 29}

def get_odd_num(num_list):
    return [x for x in num_list if(x % 2)]

print(get_odd_num(num_list))
# ๋ฐฉ๋ฒ• 2

#์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ
num_list = [1, 5, 7, 15, 16, 22, 28, 29]

def get_odd_num(num_list):
    odd_list = []

    for x in num_list:
        if(x % 2 == 1):
            odd_list.append(x)

    return odd_list

print(get_odd_num(num_list))
#์ถœ๋ ฅ
[1, 5, 7, 15, 29]

*list comprehension ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜:

[(๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ๊ฐ’) for (์‚ฌ์šฉํ•  ๋ณ€์ˆ˜ ์ด๋ฆ„) in (์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ or ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’(์กฐ๊ฑด๋ฌธ ...)]

+ ์ฐธ๊ณ  <list comprehension>


โ“‘ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์›์†Œ๋ฅผ ๋ฐ›๋Š” ๊ฒฝ์šฐ

# ๋ฐฉ๋ฒ• 1

#์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ
num_list = {1, 5, 7, 15, 16, 22, 28, 29}

odd_list = [x for x in num_list if x % 2 == 0]

print(odd_list)
# ๋ฐฉ๋ฒ• 2

#์ฃผ์–ด์ง„ ๋ฆฌ์ŠคํŠธ
num_list = {1, 5, 7, 15, 16, 22, 28, 29}

def get_odd(n):
    return [n % 2 == 1]

odd_list = list(filter(get_odd, num_list))

print(odd_list)

*filter ํ•จ์ˆ˜:

filter(ํ•จ์ˆ˜์ด๋ฆ„, ์›๋ณธ ๋ฆฌ์ŠคํŠธ)

return ๊ฐ’: iterator(filter object)

์›๋ณธ ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜ ํ•จ์ˆ˜์— ๋„ฃ์–ด์„œ ๋ฐ˜ํ™˜์ด true์ธ ๊ฐ’์„ ๋‹ค์‹œ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

filter ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋“ค์–ด๊ฐ€๋Š” ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด ํƒ€์ž…์€ boolํ˜•์ด์–ด์•ผ ํ•œ๋‹ค.

+ ์ฐธ๊ณ  <filter ํ•จ์ˆ˜> https://helloworld-fromuser.tistory.com/19

๋Œ“๊ธ€์ˆ˜0