> 백엔드 개발 > 파이썬 튜토리얼 > 동기화를 유지하면서 Python에서 두 개의 병렬 목록을 효율적으로 정렬하려면 어떻게 해야 합니까?

동기화를 유지하면서 Python에서 두 개의 병렬 목록을 효율적으로 정렬하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-11 14:49:12
원래의
460명이 탐색했습니다.

How Can I Efficiently Sort Two Parallel Lists in Python While Maintaining Synchronization?

병렬 목록의 순열을 사용하여 목록 정렬

두 개의 병렬 목록이 주어지면 하나는 동기화된 상태에서 다른 하나는 재정렬하면서 정렬할 수 있습니다. 이는 첫 번째 목록을 정렬하고 재정렬된 요소의 인덱스를 사용하여 두 번째 목록을 재배열함으로써 달성됩니다.

한 가지 일반적인 접근 방식은 두 목록을 압축하여 정렬하는 "장식, 정렬, 장식 해제" 관용어입니다. 첫 번째 목록을 기반으로 한 다음 결과의 압축을 풉니다. Python의 zip 기능을 사용하면 다음과 같이 간결하게 구현할 수 있습니다.

list1, list2 = zip(*sorted(zip(list1, list2)))
로그인 후 복사

그러나 더 큰 목록의 경우 더 효율적인 내부 버전이 있습니다.

tups = zip(list1, list2)
tups.sort()
list1, list2 = zip(*tups)
로그인 후 복사

-비교 가능한 요소, 람다 함수를 사용한 정렬 인덱스를 사용할 수 있습니다. 또는 두 번째 목록의 요소 비교를 피하기 위해 정렬에 주요 기능을 제공할 수 있습니다.

result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
로그인 후 복사

빈 입력은 별도로 처리해야 하며 내부 버전이 약간 더 빠를 수 있다는 점에 유의해야 합니다. , 특히 작은 목록의 경우

위 내용은 동기화를 유지하면서 Python에서 두 개의 병렬 목록을 효율적으로 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿