Dev/Python

[Python] 파이썬 리스트 정렬 / 2차원 리스트 정렬(Sorted, Sort, lamda)

장그래 2022. 3. 2. 00:05
반응형

1차원 리스트 정렬 (Sort)

  • 리스트 오름차순 정렬 (Sort)
a = [1, 9, 7, 10, 3]
a.sort()
print(a)

>> [1, 3, 7, 9, 10]
  • 리스트 내림차순 정렬 (Sort)
a = [1, 9, 7, 10, 3]
a.sort(reverse=True)
print(a)

>> [10, 9, 7, 3, 1]

1차원 리스트 정렬 반환 (Sort)

  • 원본 리스트(a)를 변환하지 않은 상태로 정렬된 리스트를 반환
  • 오름차순 정렬 반환(Sorted)
a = [1, 9, 7, 10, 3]
b = sorted(a)
print(a)
print(b)

>> [1, 9, 7, 10, 3] # a
>> [1, 3, 7, 9, 10] # b
  • 내림차순 정렬 반환(Sorted) / iterable 한 객체를 반환하기 때문에, list로 변환 필요
a = [1, 9, 7, 10, 3]
b = reversed(a)
print(a)
print(list(b))

>>[1, 9, 7, 10, 3] # a
>>[3, 10, 7, 9, 1] # b

2차원 리스트 정렬 (Sort)

  • 2차원 배열의 1번째 인덱스로 정렬하는 정렬 
  • ex) [1,9] 와 [2,5]를 비교할 때 1과 2만 비교한다. 
a = [[1, 9], [7, 10], [2, 5], [3, 8], [1, 2]]
a.sort(key = lambda x : x[0])
print(a) 

>> [[1, 9], [1, 2], [2, 5], [3, 8], [7, 10]]
  • 1번째 인덱스와 2번째 인덱스 모두 비교하는 정렬 
a = [[1, 9], [7, 10], [2, 5], [3, 8], [1, 2]]
a.sort(key = lambda x: (x[0],x[1])) # a.sort() 랑 같음
print(a) 

>> [[1, 2], [1, 9], [2, 5], [3, 8], [7, 10]]
  • 2번째 인덱스 먼저 비교 후, 1번째 인덱스를 비교하는 정렬
  • 기존 a.sort()랑 순서가 바뀐 정렬이다.
a = [[1, 9], [7, 10], [2, 5], [3, 8], [1, 2]]
a.sort(key = lambda x: (x[1],x[0]))
print(a) 

>> [[1, 2], [2, 5], [3, 8], [1, 9], [7, 10]]

 

반응형

'Dev > Python' 카테고리의 다른 글

[Python] RDS(DB)에서 CSV 파일로 export 하기 (import pandas)  (0) 2022.08.30