728x90
1. sort (메소드)
list_obj.sort( key = function, reverse = True )
- 리스트에 있는 메소드
- 오름차순 정렬이 기본 세팅이고 내림차순을 원한다면 reverse = True 를 매개변수로 전달
- 사용자가 원하는 정렬방법이 있을 때는 함수를 만들어 매개변수로 전달하거나 람다식을 사용한다.
# 함수, 람다식 사용 비교
# 람다식
ns = [('A군', 88), ('B군', 92), ('C군', 77)]
ns.sort(key=lambda t: t[1]) # [('C군', 77), ('A군', 88), ('B군', 92)]
# 함수
def sort_ns(t):
return t[1]
ns.sort(key=sort_ns, reverse=True) # [('B군', 92), ('A군', 88), ('C군', 77)]
2. sorted (함수)
cpy_list_obj = sorted( list_obj, key = function, reverse = True )
- sort 메소드는 원본을 수정하기 때문에 원본은 유지하면서 정렬된 사본을 얻고 싶을 때 sorted 함수 사용
- iterable 객체면 매개변수로 전달받을 수 있다.
- sorted 에 매개변수로 전달된 객체는 정렬처리 후 리스트에 담겨 반환된다.
# 람다식
ns = [('A군', 88), ('B군', 92), ('C군', 77)]
cpy_ns = sorted(ns, key=lambda t: t[1]) # [('C군', 77), ('A군', 88), ('B군', 92)]
# 함수
def sort_ns(t):
return t[1]
cpy_ns = sorted(ns, key=sort_ns, reverse=True) # [('B군', 92), ('A군', 88), ('C군', 77)]
3. enumerate (함수)
new_obj = enumerate( org_obj, start_number )
- iterable 객체(org_obj)의 인자들에 넘버링을 쉽게 해주는 함수
- iterable 객체를 인자로 전달 받고 iterator 객체(new_obj)를 생성한다.
- start_number 자리에 숫자가 없다면 iterble 객체의 값들을 0부터 번호를 부여하고, 튜플로 감싸서 하나씩 반환
# 무작위로 정렬된 학생 리스트를 오림차순으로 정렬한 후 이름 순으로 번호를 부여
student_list = ['D군', 'A군', 'B양', 'C군']
student_list.sort() # ['A군', 'B양', 'C군', 'D군']
numbering_student_list = {k: v for k, v in enumerate(student_list, 1)}
# {1: 'A군', 2: 'B양', 3: 'C군', 4: 'D군'}
728x90
'# Programming Language > Python' 카테고리의 다른 글
[Python] 파이썬 정리(9)_파이썬에서 클래스와 객체 (0) | 2021.07.31 |
---|---|
[Python] 파이썬 정리(8)_문자열 조합(표현식 기반, 메소드 기반) (0) | 2021.04.26 |
[Python] 파이썬 정리(6)_집합_set/frozenset (0) | 2021.04.16 |
[Python] 파이썬 정리(5)_딕셔너리_딕컴프리헨션/defaultdict/setdefault/OrderedDict/zip 함수 (0) | 2021.04.03 |
[Python] 파이썬 정리(4)_튜플_패킹/언패킹/네임드 튜플 (0) | 2021.03.28 |