[PYTHON] 목록의 파이썬 정렬 목록 / 오름차순 및 내림차순
PYTHON목록의 파이썬 정렬 목록 / 오름차순 및 내림차순
내가 이런 식으로 보이는 목록을 가지고 있다면 ...
['a',1] ['a',2] ['a',3] ['b',1] ['b',2] ['b',3]
요소 0을 내림차순으로 정렬하고 요소 1을 오름차순으로 정렬하여 결과가 어떻게 보이는지 정렬하려면 어떻게해야합니까?
['b',1] ['b',2] ['b',3] ['a',1] ['a',2] ['a',3]
itemgetter를 사용하면 엘레멘트 0에서 역으로 전달할 수 있지만 엘레멘트에 대비하여 엘레멘트를 사용하면 이전에 있던 엘레멘트를 폐지 할 수있다. 우선 내림차순으로 정렬 한 다음 오름차순으로 정렬해야하므로 결합 된 키를 사용할 수 없습니다.
TIA, PK
해결법
-
==============================
1.
L = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]] L.sort(key=lambda k: (k[0], -k[1]), reverse=True)
L에 다음 내용이 포함되어 있습니다.
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
-
==============================
2.파이썬의 정렬이 안정적이어서 순차적으로 정렬을 수행 할 수 있습니다. 먼저 보조 키를 정렬해야합니다. 공식적인 방법 참조.
파이썬의 정렬이 안정적이어서 순차적으로 정렬을 수행 할 수 있습니다. 먼저 보조 키를 정렬해야합니다. 공식적인 방법 참조.
from operator import itemgetter l = [['a',2], ['a',1], ['b', 2], ['a',3], ['b',1], ['b',3]] l.sort(key=itemgetter(1)) l.sort(key=itemgetter(0), reverse=True) # [['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
-
==============================
3.좋아하는 것
좋아하는 것
def mycmp(a, b): res = cmp(a[0], b[0]) if res == 0: return cmp(a[1], b[1]) return res newlist = sorted(input_list, cmp=mycmp)
비교 메소드는 먼저 각 요소의 첫 번째 항목을 확인합니다. 그것들이 동일하면 각 요소의 두 번째 항목을 검사합니다. 다른 정렬 동작을 구현하기 위해 mycmp () 구현 내부의 반환 값이 무효화 될 수 있습니다.
from https://stackoverflow.com/questions/6666748/python-sort-list-of-lists-ascending-and-then-decending by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 사전에 삽입 된 순서대로 항목을 검색하는 방법은 무엇입니까? (0) | 2018.10.13 |
---|---|
[PYTHON] Python dict를 반복하면서 수정 (0) | 2018.10.13 |
[PYTHON] pyplot.barh ()로 각 막대의 막대 값을 표시하는 방법? (0) | 2018.10.13 |
[PYTHON] 기본 텐서 흐름 예제를 실행하는 중 오류가 발생했습니다. (0) | 2018.10.13 |
[PYTHON] 목록에서 연속 된 중복을 식별하는 가장 Pythonic 한 방법은 무엇입니까? (0) | 2018.10.13 |