집합 연산 및 순서 보존
목록을 집합으로 변환할 때 집합은 빠른 우선순위를 갖는 정렬되지 않은 데이터 구조이기 때문에 요소 순서가 변경됩니다. 회원 테스트. 원래 삽입 순서를 유지하지 않습니다.
집합 연산의 순서 유지
초기 순서를 잃지 않고 집합 연산을 수행하려면 다음 옵션을 고려하세요.
1. 집합 차이에 대한 List Comprehension
일반 목록이 있고 순서를 유지하면서 요소 집합을 제거해야 하는 경우 List Comprehension을 사용하세요.
a = [1, 2, 20, 6, 210] b = set([6, 20, 1]) [x for x in a if x not in b] # [2, 210]
2 . 순서 집합의 사전 키
빠른 멤버십 테스트와 삽입 순서 보존이 포함된 데이터 구조를 위해 Python 사전의 키를 사용하세요(Python 3.7부터 시작).
a = dict.fromkeys([1, 2, 20, 6, 210]) b = dict.fromkeys([6, 20, 1]) dict.fromkeys(x for x in a if x not in b) # {2: None, 210: None}
3. Collections.OrderedDict(레거시 지원)
이전 Python 버전의 경우 collections.OrderedDict:
a = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210]) b = collections.OrderedDict.fromkeys([6, 20, 1]) collections.OrderedDict.fromkeys(x for x in a if x not in b) # OrderedDict([(2, None), (210, None)])
위 내용은 요소의 원래 순서를 유지하면서 집합 작업을 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!