상세 컨텐츠

본문 제목

max()

Python

by techbard 2024. 12. 2. 08:34

본문

반응형

 

 

# 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
반응형

관련글 더보기

댓글 영역