Molybdenum의 개발기록

[TIL] 8일차_PYTHON_Function_03 본문

TIL

[TIL] 8일차_PYTHON_Function_03

Molybdenum_j 2023. 3. 3. 17:05

▶ list comprehension : 리스트 컴프리헨션

= 리스트 내에서 특정 조건에 해당하는 것만 따로 뽑아내거나, 특정 조건에 해당하는 값들만 바꿔 새로운 리스트를 만들 때 사용할 수 있다.

  • 간단한 반복문, 조건문을 사용해서 리스트 데이터를 만들때 사용하는 문법
  • 주로 리스트 데이터를 필터링 하거나 데이터를 변경할때 사용
  • new_list = [변수 활용 for 변수 in 반복대상 if 조건]
# 0 ~ 9 까지의 데이터에서 홀수만 뽑아서 제곱한 결과를 리스트로 출력
result = []
for number in range(10):
    if number % 2:
        result.append(number ** 2)
result

[1, 9, 25, 49, 81]
result = [number ** 2 for number in range(10) if number % 2]
result

[1, 9, 25, 49, 81]

 

▶ map(function, iterable)

literable한 데이터의 모든 value에 특정 함수를 적용한 결과를 리스트로 출력한다.

저장할 변수 = map(함수 이름, 대응할 일련의 요소)

names = ['kim python(23)', 'lee notebook(32)', 'kim macbook(47)']

def ages(data):
    return data[:-3] + str(int(data[-3:-1]) // 10 * 10) + ')'

list(map(ages, names))

['kim python(20)', 'lee notebook(30)', 'kim macbook(40)']

 

저장할 리스트 = list(map(함수이름, 리스트))

names1 = ['kim python(23)', 'lee notebook(32)', 'kim macbook(47)']
names2 = ['kim py(33)', 'lee note(52)', 'kim book(87)']

def ages(*args):
    return [data[:-3] + str(int(data[-3:-1]) // 10 * 10) + ')' for data in args]

print(list(map(ages, names1, names2)))

[['kim python(20)', 'kim py(30)'], ['lee notebook(30)', 'lee note(50)'], ['ki

 

Quiz. map 함수 직접 구현

names1 = ['kim python(23)', 'lee notebook(32)', 'kim macbook(47)']
names2 = ['kim py(33)', 'lee note(52)', 'kim book(87)']

def ages1(data):
    return data[:-3] + str(int(data[-3:-1]) // 10 * 10) + ')'

def ages2(*args):
    return [data[:-3] + str(int(data[-3:-1]) // 10 * 10) + ')' for data in args]
    # TODO
def map_func(func, *args):
    print(args[0])
    return [func(value) for value in args[0]]

map_func(ages1, names1)

['kim python(23)', 'lee notebook(32)', 'kim macbook(47)']
['kim python(20)', 'lee notebook(30)', 'kim macbook(40)']
def map_func(func, *args):
    # print(args)
    result = []
    for data in zip(*args): # zip(names1, names2)
        # print(data)
        result.append([func(value)[0] for value in data])
    return result

print(map_func(ages2, names1, names2))

[['kim python(20)', 'kim py(30)'], ['lee notebook(30)', 'lee note(50)'], ['kim macbook(40)', 'kim book(80)']]

 

 

출처-멋쟁이사자처럼_AISCHOOL_박두진강사님

'TIL' 카테고리의 다른 글

[TIL] 9일차_PYTHON_Decorator  (0) 2023.03.03
[TIL] 9일차_PYTHON_Class  (0) 2023.03.03
[TIL] 8일차_PYTHON_Fuction_02  (0) 2023.03.03
[TIL] 8일차_PYTHON_Function_01  (0) 2023.03.03
[TIL] 7일차_Conditional_probability  (0) 2023.03.03
Comments