[python] 컬렉션 관리 함수(enumerate, zip, any, all, filter, map)

컬렉션 관리 함수(enumerate, zip, any, all, filter, map)

1. enumerate

score = [88, 95, 70, 100, 99]
for no, s in enumerate(score):
    print('{}번 학생의 성적 : {}'.format(no, s))

# 0번 학생의 성적 : 88
# 1번 학생의 성적 : 95
# 2번 학생의 성적 : 70
# 3번 학생의 성적 : 100
# 4번 학생의 성적 : 99
score = [88, 95, 70, 100, 99]
for no, s in enumerate(score,1):
    print('{}번 학생의 성적 : {}'.format(no, s))
# 1번 학생의 성적 : 88
# 2번 학생의 성적 : 95
# 3번 학생의 성적 : 70
# 4번 학생의 성적 : 100
# 5번 학생의 성적 : 99

2. zip

yoil = ['월', '화', '수', '목', '금', '토', '일']
food = ['갈비탕', '순대국', '칼국수', '삼겹살']

menu = zip(yoil,food)
for y, f in menu:
    print(y,f)
# 월 갈비탕
# 화 순대국
# 수 칼국수
# 목 삼겹살

d = dict(zip(yoil, food))
print(d)
{'월': '갈비탕', '화': '순대국', '수': '칼국수', '목': '삼겹살'}

3. any, all

# any => 하나라도 True
# all => 모두가 True

adult = [True, True, False, False]
print(any(adult)) # True
print(all(adult)) # False

4. filter

score = [45, 89, 72, 53, 94]
for s in filter(lambda s: s<60, score):
    print(s)
# 45
# 53

l_filter = list(filter(lambda s: s<60, score))
print(l_filter)
# [45, 53]

5. map

for s in map(lambda s: s/2 ,score):
    print(s)  
# 22.5
# 44.5
# 36.0
# 26.5
# 47.0 

print(list(map(lambda s: s/2 ,score)))
# [22.5, 44.5, 36.0, 26.5, 47.0]