세트로 변환할 때 목록 순서 유지
Python에서 목록을 세트로 변환할 때 세트로 인해 요소 순서가 변경될 수 있습니다. 순서가 없는 데이터 구조입니다. 원래 주문을 유지해야 하는 경우 이러한 동작은 불편할 수 있습니다.
세트는 빠른 회원 조회를 제공하도록 설계되었습니다. 요소를 해시 값으로 저장합니다. 요소가 집합에 추가되는 순서는 유지되지 않으므로 목록을 집합으로 변환하면 검색 효율성을 최적화하기 위해 요소가 재정렬됩니다.
아. List Comprehension
순서를 유지하면서 목록에서 특정 요소를 제거해야 하는 경우 List Comprehension을 사용할 수 있습니다. 예:
a = [1, 2, 20, 6, 210] b = set([6, 20, 1]) result = [x for x in a if x not in b] # [2, 210]
b. OrderedDict(Python 3.7 )
Python 버전 3.7 이상의 경우 collections.OrderedDict를 사용하여 순서가 지정된 세트를 만들 수 있습니다. 세트 연산 후에도 요소 순서를 유지합니다.
from collections import OrderedDict a = OrderedDict.fromkeys([1, 2, 20, 6, 210]) b = OrderedDict.fromkeys([6, 20, 1]) result = OrderedDict.fromkeys(x for x in a if x not in b) # OrderedSet([(2, None), (210, None)])
c. OrderedSet(이전 Python 버전)
이전 Python 버전에서는orderedset 패키지를 사용하여 유사한 기능을 구현할 수 있습니다.
import orderedset a = orderedset.OrderedSet([1, 2, 20, 6, 210]) b = orderedset.OrderedSet([6, 20, 1]) result = orderedset.OrderedSet(x for x in a if x not in b)
이러한 기술을 사용하면 집합 작업을 수행할 수 있습니다. 원래 목록 순서를 유지하면서
위 내용은 Python에서 세트로 변환한 후 목록 순서를 어떻게 유지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!