Python 병렬 리스트의 해당 값에 따라 목록을 정렬합니다. [중복], Sorting list according to corresponding values from a parallel list [duplicate]
질문 나는 다음과 같은 문자열 목록을 가지고 있습니다: X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1 ] 다음 출력을 얻기 위해 Y의 값을 사용하여 X를 정렬하는 가장 짧은 방법은 무엇인가요? ["a", "d", "h", "b", "c", "e", "i", "f", "g"] 같은 "key"를 가진 요소의 순서는 중요하지 않습니다. for 구문을 사용할 수 있지만 더 짧은 방법이 있는지 궁금합니다. 어떤 제안이 있으신가요? 답변 가장 짧은 코드 [x for _, x in sorted(zip(Y, X))] 예시: X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = ..
2023. 9. 9.
Python 주어진 인덱스의 요소를 기준으로 리스트/튜플의 리스트/튜플을 정렬하는 방법, How to sort a list/tuple of lists/tuples by the element at a given index
질문 나는 몇 개의 데이터가 리스트의 리스트 또는 튜플의 리스트에 있습니다. 이렇게 보입니다: data = [[1,2,3], [4,5,6], [7,8,9]] data = [(1,2,3), (4,5,6), (7,8,9)] 그리고 나는 하위 집합의 2번째 요소에 따라 정렬하고 싶습니다. 즉, 2는 (1,2,3)에서, 5는 (4,5,6)에서 가져온 2,5,8에 따라 정렬하고 싶습니다. 이를 수행하기 위한 일반적인 방법은 무엇인가요? 리스트에는 튜플을 저장해야 하나요? 답변 sorted_by_second = sorted(data, key=lambda tup: tup[1]) 또는: data.sort(key=lambda tup: tup[1]) # 그 자리에서 정렬 기본 정렬 모드는 오름차순입니다. 내림차순으로 정렬..
2023. 6. 25.