728x90
Goal
파이썬의 객체 리스트, 튜플 리스트 정렬
sort()
- 자신 리스트를 정렬
a = [5, 341, 6, 1, 4]
a.sort()
sorted()
- 함수 argument로 들어온 리스트를 정렬해서 반환
a = [5, 341, 6, 1, 4]
b = sorted(a)
key 매개변수를 이용한 정렬
- 어떠한 요소를 기준으로 정렬
튜플(tuple) 정렬
tuple = [(1, b), (4, z), (3, a), (1, a)]
tuple.sort(key=lambda x: (x[0], x[1]))
# 정렬결과: [(1, 'a'), (1, 'b'), (3, 'a'), (4, 'z')]
코드 설명
- x[0] 기준으로 먼저 정렬하고 같은 값이 존재할 경우 x[1]를 기준으로 정렬한다.
객체(object) 정렬
class File:
def __init__(self, filename, head, number, tail, index):
self.filename = filename
self.head = head
self.number = number
self.tail = tail
self.index = index
file = [File("foo10.txt", "foo", 10, ".txt", 2), File("foo10.txt", "foo", 10, ".txt", 1),
File("foo9.txt", "foo", 9, ".txt", 0)]
file.sort(key=lambda x: (x.head, x.number, x.index))
for f in file:
print(f.filename + " " + f.head + " " + str(f.number) + " " + f.tail + " " + str(f.index))
# 정렬결과
# foo9.txt foo 9 .txt 0
# foo10.txt foo 10 .txt 1
# foo10.txt foo 10 .txt 2
- 튜플은 인덱스로 인자를 넘기지만 하지만 객체는 필드로 인자를 넘긴다.
728x90
'Algorithm > Note' 카테고리의 다른 글
[IntelliJ] 인텔리제이 단축키 (mac 기준) (0) | 2022.04.12 |
---|---|
[Java] 코테 준비 - 클래스 객체 배열 정렬하기 - Comparable<E> (0) | 2022.04.10 |
[Java] 코테 준비 - binary to decimal과 decimal to binary (0) | 2022.02.20 |
[Java] Map for-each문 사용 방법 (0) | 2022.02.08 |
[C++] 코테 준비 - 문자열 분리 (0) | 2022.02.08 |