문제.
team = [
{'name': '진규', 'age': 91},
{'name': '현식', 'age': 93},
{'name': '명흠', 'age': 94},
{'name': '소진', 'age': 97},
{'name': '혜린', 'age': 98}
]
def team_age(team):
if team['age'] < 92:
return '최연장자'
elif team['age'] < 94:
return '둘째'
elif team['age'] < 95:
return '셋째'
elif team['age'] < 98:
return '넷째'
else:
return '막내'
result = map(team_age, team)
print(list(result))
팀 자체 개인 숙제로 브리핑 했던 map 함수.
시도한 것.
def team_age(team):
if team['age'] < 92:
return '최연장자'
elif team['age'] < 94:
return '둘째'
elif team['age'] < 95:
return '셋째'
elif team['age'] < 98:
return '넷째'
else:
return '막내'
이걸 한 줄로 줄이기 위해 해본 여러 시도는
return '최연장자' if team['age'] < 92 return '둘째' elif team['age'] < 94 return '셋째' elif team['age'] < 95 return '넷째' elif team['age'] < 98 else '막내'
여기서 ,와 (),{},[] 등 각종 시도를 했지만 안되서 뭔가 다른 방식이 있다고 생각하고 서치 시작
두 가지 문제가 있었는데,
첫 번째,
return은 결과 값을 내고 종료되기 때문에 if-elif-else가 아니라 if-else를 써야 함.
두 번째,
가능하지만
def team_age(team):
return '최연장자' if team['age'] < 92 else '둘째' if team['age'] < 94 else '셋째' if team['age'] < 95 else '넷째' if team['age'] < 98 else '막내'
보다시피 가독성이 오히려 떨어져서 잘 사용하진 않는 듯.
결론.
시스템적으로 가능하지만 내 접근방식이 잘못 되었음.
올바른 접근방식을 알아냈지만 기호에 맞지 않음.
시스템적 가부를 알고 그게 나의 방식으로 쓸지 결정하는 좋은 기회였다.