>백엔드 개발 >파이썬 튜토리얼 >다른 목록의 해당 정수 값을 기준으로 문자열 목록을 정렬하는 방법은 무엇입니까?

다른 목록의 해당 정수 값을 기준으로 문자열 목록을 정렬하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-31 16:00:20279검색

How to Sort a List of Strings Based on Corresponding Integer Values in Another List?

다른 목록의 해당 값을 사용하여 목록 정렬

두 개의 목록(문자열을 포함하는 X와 정수를 포함하는 Y)이 주어지면 다음 목록의 해당 값에 따라 X를 정렬하려고 합니다. Y는 동일한 "키" 값을 가진 요소의 원래 순서를 유지합니다. Python의 내장 함수를 사용하여 다음과 같은 최적화된 솔루션을 살펴보세요.

[x for _, x in sorted(zip(Y, X))]

예:

X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0,   1,   1,    0,   1,   2,   2,   0,   1]

Z = [x for _,x in sorted(zip(Y,X))]
print(Z)  # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]

설명:

  1. zip(Y, X) 각각 Y의 요소와 해당 요소를 포함하는 튜플 목록을 만듭니다. X.
  2. sorted(zip(Y, X))는 첫 번째 요소(Y의 값)를 기준으로 튜플 목록을 정렬합니다.
  3. [x for _, x in sorted(. ..)] 정렬된 튜플 목록을 반복하고 첫 번째 요소(_)를 버리고 두 번째 요소만 유지하여 새 목록을 만듭니다. (x).

추가 설명:

sorted() 함수를 사용하면 정렬 기준을 결정하는 주요 함수를 지정할 수 있습니다. 이 경우 key=lambda pair: pair[0]을 사용하여 첫 번째 요소를 기준으로 튜플을 정렬합니다. 이는 Y의 해당 값을 기준으로 X를 효과적으로 정렬합니다.

위 내용은 다른 목록의 해당 정수 값을 기준으로 문자열 목록을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.