Python에서 다른 목록으로 목록 정렬

Shivam Arora 2023년1월30일 Python Python List
  1. zip()sorted() 함수를 사용하여 Python의 다른 목록을 기반으로 목록 정렬
  2. NumPy 모듈을 사용하여 Python의 다른 목록을 기반으로 목록 정렬
  3. more_itertools.sort_together를 사용하여 Python의 다른 목록을 기반으로 목록 정렬
Python에서 다른 목록으로 목록 정렬

일반적으로 목록을 정렬할 때 오름차순 또는 내림차순으로 정렬합니다. 그러나 Python에서 다른 목록의 순서에 따라 목록을 정렬할 수 있습니다.

이 기사에서 다른 목록의 값을 기반으로 주어진 목록을 정렬하는 방법을 배웁니다.

zip()sorted() 함수를 사용하여 Python의 다른 목록을 기반으로 목록 정렬

이 방법에서는 zip() 함수를 사용하여 두 개의 주어진 목록을 결합하여 세 번째 객체를 만들 것입니다. 첫 번째는 정렬되어야 하고 두 번째는 정렬이 의존하는 목록입니다.

그런 다음 정렬되고 압축된 목록에서 주어진 목록의 각 쌍의 첫 번째 요소를 추출하는 sorted() 함수를 사용할 수 있습니다.

A = ["r", "s", "t", "u", "v", "w", "x", "y", "z"]
B = [0, 1, 1, 0, 1, 2, 2, 0, 1]
result_list = [i for _, i in sorted(zip(B, A))]
print(result_list)

출력:

['r', 'u', 'y', 's', 't', 'v', 'z', 'w', 'x']

NumPy 모듈을 사용하여 Python의 다른 목록을 기반으로 목록 정렬

이 방법에서는 목록을 NumPy 배열로 변환한 다음 정렬 알고리즘을 목록에 적용합니다. argsort() 함수를 사용하여 정렬이 의존하는 배열을 정렬한 다음 해당 값을 사용하여 두 번째 배열을 필터링합니다.

다음 예를 참조하십시오.

import numpy

A = ["r", "s", "t", "u", "v", "w", "x", "y", "z"]
B = [0, 1, 1, 0, 1, 2, 2, 0, 1]

A = numpy.array(A)
B = numpy.array(B)
inds = B.argsort()
sorted_a = A[B]
print(sorted_a)

출력:

['r' 's' 's' 'r' 's' 't' 't' 'r' 's']

목록의 최종 데이터를 얻으려면 tolist() 함수를 사용하십시오.

more_itertools.sort_together를 사용하여 Python의 다른 목록을 기반으로 목록 정렬

more_itertools 모듈은 itertools 모듈의 확장입니다. sort_together 함수는 key_list 인수의 목록을 정렬 우선 순위로 사용하여 함께 정렬된 입력 반복 가능 항목을 반환합니다.

예를 들어,

from more_itertools import sort_together

X = ["r", "s", "t", "u", "v", "w", "x", "y", "z"]
Y = [0, 1, 1, 0, 1, 2, 2, 0, 1]
s = sort_together([Y, X])[1]
print(list(s))

출력:

['r', 'u', 'y', 's', 't', 'v', 'z', 'w', 'x']

최종 결과를 목록으로 얻으려면 list() 함수를 사용해야 합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다

관련 문장 - Python List