Python 집합 vs 리스트

조회수 442회

집합과 리스트의 차이점이 무엇인가요??

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 제 생각엔 중복이 가능하냐 안 가능하냐가 가장 큰 차이 같습니다. 알 수 없는 사용자 2020.9.17 17:39

4 답변

  • 여러 차이점이 있는데, 이런 차이점이 있어요.

    >>> bignum = 1000000
    >>> a = set(range(bignum))
    >>> b = list(range(bignum))
    
    
    >>> import time
    >>> def find_nums_in(c):
    ...     s_t = time.time()
    ...     for i in range(bignum):
    ...             if i in c:
    ...                     pass
    ...     print('took %s sec'%(time.time() - s_t,))
    ...
    >>> find_nums_in(a)
    took 0.031252145767211914 sec
    >>> find_nums_in(b)
    took 4891.12208032608 sec
    >>>
    
    
  • 리스트는 우리가 아는 그 리스트가 맞고요.

    Set의 경우에는 그 리스트 에다가, 새로운 엘리먼트를 추가할 때 마다, 모든 엘리먼트들에 대하여 정합성 검사를 하여 동일한 엘리먼트인 경우에 해당 엘리먼트를 추가하지 않습니다.

    즉. 모든 엘리먼트가 unique 함이 보장됩니다.

  • Set in Python

    A set in Python holds a sequence of values. It is sequenced but does not support indexing.

    List in Python

    A list is a data type in Python that contains an ordered sequence of zero or more elements. Lists in Python are mutable, which means they can be changed. This data type is useful when you want to store many related values, as you can store data with similar values—such as car names, or employee names—in one variable.

    You can learn more here: https://theknowshares.com/lists-in-python/

    • (•́ ✖ •̀)
      알 수 없는 사용자
  • 집합(Set) :

    • unordered, unindexed (넣은 순서와 상관없이 들어가고 인덱싱을 할 수 없고 hashing 으로 원소에 접근해요 - 그래서 리스트보다 빠름)
    • no duplicates (같은 원소 두 번 넣을 수 없음. 여러번 넣어도 하나의 원소만 유지되어요)

    리스트

    • ordered, indexed (myList[1], myList[2:5] 이런 인덱싱 가능)
    • 같은 원소를 두 번 넣을 수 있어요 (aList = [ 1, 1, 3, 4, 5, 6, 6] 가능)

    리스트 말고 집합을 쓰면 어떤 유니크한 값이 가지는 고정된 속성을 하나로 묶어서 여기저기(메소드라든가..) 정보를 넘기기에 편리해요 예를 들어 {회원명, 고유id, 가입일} 같은 경우 유니크한 값이고, 이 회원에 대한 고정된 정보(원소 내용은 바뀌지 않음)를 같이 묶어두면 좋으니 셋으로 만들 수 있죠

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)