Python에서 목록과 집합의 차이점은 무엇입니까?


최상의 답변

몇 가지 중요한 차이점이 있습니다.

  • 인덱싱 -목록은 정수로 색인화 될 수 있습니다 (0부터 시작). 집합은 색인화 될 수 없습니다 (반복되는 경우를 제외하고 집합의 첫 번째 항목에 대한 개념이 없습니다).
  • 슬라이싱-목록을 분할 할 수 있습니다 ([a : b] 표기법 사용); Python 세트는 슬라이스 할 수 없습니다.
  • 내용-목록은 데이터 항목의 혼합을 포함 할 수 있습니다. 집합은 해시 가능한 데이터 항목 만 포함 할 수 있습니다 (즉, hash () 함수가 값을 반환 함).
  • 중복-목록에 중복 데이터 항목이 포함될 수 있습니다. 항목의 횟수에 제한이 없습니다. 목록에 동일한 값이 나타납니다. 세트는 중복을 포함 할 수 없습니다.
  • 순서-목록이 정렬됩니다. 즉, 목록을 사용하는 프로그램에 의해 결정된 순서를 유지합니다. 세트는 순서가 지정되지 않습니다. 첫 번째, 두 번째 등의 개념이 없으며 프로그래머가 세트가 반복, 표시 또는 표시되는 순서를 제어 할 수있는 방법이 없습니다. (참고 순서는 정렬되는 것과 동일하지 않지만 세트도 정렬 할 수 없습니다.)
  • 멤버십-목록의 멤버십 테스트 ( in연산자)는 처음부터 마지막; 집합에 대한 멤버십 테스트는 먼저 검색되는 값의 hash ()를 기반으로합니다. 집합 검색은 비슷한 크기의 목록과 비교할 때 훨씬 더 효율적입니다.
  • 기타 기능-목록에는 중복 또는 목록 간의 차이점을 기반으로 새 목록을 만드는 동작이 없습니다. 반면에 세트에는 세트 간의 차이점과 오버 알프를 식별하기위한 수많은 작업 (및 방법)이 있습니다.

답변

세트 는 목록 또는 사전과 유사한 데이터 구조입니다. 중괄호 또는 set 함수를 사용하여 생성됩니다. 특정 항목이 포함되어 있는지 확인하기 위해 in 의 사용과 같은 일부 기능을 목록과 공유합니다.

num\_set = {1, 2,3,4,5}

word\_set = set ([ “spam”, “eggs”, “sausage”])

print (3 in num\_set)

print ( “spam”not in word\_set)

>> True

>> False

참고 : 빈 집합을 만들려면 다음과 같이 set ()을 사용해야합니다. {} 빈 사전을 만듭니다.

세트는 여러면에서 목록과 다르지만 len 과 같은 여러 목록 작업을 공유합니다. . 순서가 지정되지 않았으므로 색인을 생성 할 수 없습니다. 중복 요소를 포함 할 수 할 수 없습니다 . “저장되는 방식으로 인해 빠르게 항목이 목록의 일부가 아닌 세트의 일부인지 확인합니다. append <를 사용하는 대신 / span> 세트에 추가하려면 add 를 사용합니다. remove 메소드는 특정 집합에서 요소; pop 임의의 요소를 제거합니다.

수학적 연산을 사용하여 집합을 결합 할 수 있습니다. union 연산자 | 는 두 세트를 결합하여 둘 중 하나의 항목을 포함하는 새 세트를 형성합니다. 교차 연산자 & 는 둘 다 항목 만 가져옵니다. 차이점 연산자 가 항목을 가져옵니다. 첫 번째 세트이지만 두 번째 세트는 아닙니다. 대칭 차이 연산자 ^ 는 두 세트 중 하나만 가져 오지만 둘 다 가져 오지는 않습니다.

사전 사용시기 : key : value 사이에 논리적 연결이 필요한 경우 쌍. -사용자 지정 키를 기반으로 데이터를 빠르게 조회해야하는 경우. -데이터가 지속적으로 수정되는 경우. 사전은 변경 가능합니다. 다른 유형을 사용하는 경우 : -다음과 같은 데이터 모음이있는 경우 목록 을 사용합니다. 랜덤 액세스가 필요하지 않습니다. 자주 수정되는 단순하고 반복 가능한 컬렉션이 필요한 경우 목록을 선택하십시오. -요소의 고유성이 필요한 경우 세트 를 사용합니다. -데이터를 변경할 수없는 경우 튜플 을 사용하세요.

이것이 도움이되기를 바랍니다.

행복한 코딩.

마지막으로이게 마음에 들면 찬성 투표 해주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다