ns = [3, 1, 4, 2]
ns.sort() # 1, 2, 3, 4
ns.sort(reverse = True) # 4, 3, 2, 1
하지만 정보가 묶여 있느 상황에서는 어떻게 정렬을 해야할까요?
ns = [('Yoon', 33), ('Lee', 12)]
먼저 나이 기준으로 오름차순 정렬을 해보면,
ns = [('Yoon', 33)], ('Lee', 12), ('Park', 29)]
def age(t):
return t[1] # 나이를 반환하는 함수
ns.sort(key = age) # 매개변수 key에 함수 age를 전달
print(ns)
# [('Lee', 12), ('Park', 29), ('Yoon', 33)]
reverse = True
를 통해 내림차순 정렬을 실행할 수 있습니다.ns = [('Yoon', 33)], ('Lee', 12), ('Park', 29)]
def name(t):
return t[0] # 이름을 반환하는 함수
ns.sort(key = name)
print(ns)
# [('Lee', 12), ('Park', 29), ('Yoon', 33)]
ns = [('Yoon', 33)], ('Lee', 12), ('Park', 29)]
ns.sort(key = lambda t : t[1])
print(ns)
# [('Lee', 12), ('Park', 29), ('Yoon', 33)]
names = ['Julia', 'Yoon', 'Steven']
names.sort(key = len) # ['Yoon', 'Julia', 'Steven']
nums = [(3, 1), (2, 9), (0, 5)] # 두 수의 합은 각각 4, 11, 5
nums.sort(key = lambda x : x[0] + x[1], reverse = True)
print(nums) # [(2, 9), (0, 5), (3, 1)]
org = [('Yoon', 33)], ('Lee', 12), ('Park', 29)]
cpy = sorted(org, key = lambda t : t[1])
print(cpy)
# [('Lee', 12), ('Park', 29), ('Yoon', 33)]
print(org)
# [('Yoon', 33)], ('Lee', 12), ('Park', 29)]
org = (3, 1, 2)
cpy = sorted(org)
print(org) # (3, 1, 2)
print(cpy) # [1, 2, 3]
org = (3, 1, 2)
cpy = tuple(sorted(org))
print(org) # (3, 1, 2)
print(cpy) # (1, 2, 3)