# max() - list
ls = [('c', 1), ('b', 2), ('a', 3)]
# max by first item
o = max(ls)
print(o)
# max by second item
o = max(ls, key = lambda x: x[1])
print(o)
# 결과('c', 1)('a', 3)
# max() - dict
ds = {'c': 1, 'b': 2, 'a': 3}
# max by key
o = max(ds)
print(o)
# max by value
o = max(ds, key = ds.__getitem__)
print(o)
# 결과
c
a
# dict의 key= 함수에 람다 적용으로 원하는 조건으로 최대값 얻기
d: dict[str, int] = {'Bob': 29, 'Sally': 19, 'John': 39}
print(f"key of max value is '{max(d, key=lambda x: d[x])}'")
print(f"key of min value is '{min(d, key=lambda x: d[x])}'")
# 결과
key of max value is 'John'
key of min value is 'Sally'
# max() - set
sets = set()
sets = {'a', 'bb', 'ccc'}
o = max(sets, key = lambda s: len(s))
print(o)
# 결과
ccc
# max() 함수의 기능을 잘 쓰면 간단해 진다.
work_hours = [('Abby', 100), ('Billy', 400), ('Cassie', 800)]
max_hour_worker = max(work_hours, key=lambda x: x[1])
print(max_hour_worker)
# 같은 로직을 for-in-loop로 구현
max_work_person = ''
max_work_hour = 0
for p, h in work_hours:
if h >= max_work_hour:
max_work_person = p
max_work_hour = h
print(max_work_person, max_work_hour)
# 결과
('Cassie', 800)
Cassie 800
댓글 영역