17_컬렉션

4362 단어
:2018-11-05

모으다


컬렉션은 목록과 비슷하지만 다른 점은 다음과 같습니다.
  • 컬렉션에는 불변 객체만 저장됩니다.
  • 집합에 저장된 대상은 순서가 없다(원소의 삽입 순서에 따라 저장되지 않는다).
  • 집합에 중복된 원소가 나타날 수 없다.

  • 컬렉션 작성


    중괄호{ }로 컬렉션을 만들려면 다음과 같이 하십시오.
    s = {10, 2, 2, 2, 2, 2}
    print(s, type(s))
    

    위에서 같은 집합 요소2는 제거되고 하나2만 보존되며 인쇄 결과는 다음과 같다.
    {10, 2} 
    

    컬렉션에서는 가변 객체가 있을 수 없습니다. 예를 들어, 다음 표기법은 오류를 보고합니다.
    s = {[1, 2, 3], [4, 5, 6]}  # TypeError: unhashable type: 'list'
    

    또한 set() 방법으로 컬렉션을 생성할 수도 있습니다.
    s = set()  #  
    s = set([1, 2, 3, 2, 3, 5])  #  
    print(s)
    s = set('hello')  #  
    print(s)
    s = set({'a': 1, 'b': 2})  #  set() , , 
    print(s)
    

    위 코드, 인쇄 결과는 다음과 같습니다.
    {1, 2, 3, 5}
    {'h', 'o', 'l', 'e'}
    {'b', 'a'}
    

    컬렉션은 순서가 없으며 직접 인덱싱할 수 없습니다.
    s = {'b', 'a', 1, 2, 30}
    print(s, type(s))
    # print(s[0]) #  , 
    print(list(s)[0])    #  list , , 
    

    2. 관련 조작 집합


    요소 검사

    in 또는 not in 키워드를 사용하여 집합 중의 원소의 존재 상황을 검사할 수 있습니다.예를 들면 다음과 같습니다.
    s = {'b', 'a', 1, 2, 30}
    print('c' in s)
    print('c' not in s)
    

    문자c가 컬렉션s에 없는 경우 FalseTrue를 반환하고 인쇄 결과는 다음과 같습니다.
    False
    True
    

    요소 추가(add)

    add() 방법을 사용하여 컬렉션에 요소를 추가합니다.
    s = {1, 2, 7}
    s.add(4)
    print(s)
    

    위 코드, 인쇄 결과는 다음과 같습니다.
    {1, 2, 4, 7}
    

    컬렉션 추가(update)

    update() 방법으로 집합의 원소를 현재 집합에 추가할 수 있습니다.예를 들면 다음과 같습니다.
    s1 = set('hello')
    s2 = set([1, 2, 3, 4])
    s1.update(s2)
    print(s1)
    

    위에서 s2의 요소를 s1에 추가하면 인쇄 결과는 다음과 같습니다.
    {1, 'l', 'e', 2, 3, 4, 'o', 'h'}
    

    요소 무작위 삭제(pop)

    pop() 방법을 사용하여 컬렉션의 요소를 임의로 삭제하고 삭제된 요소를 반환할 수 있습니다.
    s = {1, 2, 3, 4}
    result = s.pop()
    print(result)
    print(s)
    

    집합이 비어 있으면 프로그램에서 이상을 던집니다.위 코드 인쇄 결과는 다음과 같습니다.
    1
    {2, 3, 4}
    

    지정된 요소 삭제(remove)

    remove() 방법을 사용하여 컬렉션에 지정된 요소를 제거합니다.
    s = {1, 2, 3, 4}
    s.remove(2)
    print(s)
    

    집합 안에 있는 요소만 삭제할 수 있습니다. 그렇지 않으면 이상이 발생합니다.인쇄 결과는 다음과 같습니다.
    {1, 3, 4}
    

    3. 집합 수학 연산


    수학적으로 우리는 집합에 대해 연산을 진행할 수 있다.

    교차 연산


    기호&를 사용하여 교차 연산을 수행합니다.
    s1 = {1, 2, 3, 4}
    s2 = {3, 4, 5, 6}
    result = s1 & s2
    print(result)
    

    교집 연산은 s1과 s2의 원래 값에 영향을 주지 않는다.인쇄 결과는 다음과 같습니다.
    {3, 4}
    

    병렬 연산


    기호|를 사용하여 병렬 계산을 수행할 수 있습니다.
    s1 = {1, 2, 3, 4}
    s2 = {3, 4, 5, 6}
    result = s1 | s2
    print(result)
    

    인쇄 결과는 다음과 같습니다.
    {1, 2, 3, 4, 5, 6}
    

    차집 연산


    기호-를 사용하여 차집합 연산을 수행할 수 있습니다.
    s1 = {1, 2, 3, 4}
    s2 = {3, 4, 5, 6}
    result = s1 - s2
    print(result)
    

    위에서 계산한 결과 s1에만 있고 s2에 없는 요소는 다음과 같다.
    {1, 2}
    

    이차 혹은 집합 연산


    두 집합에 모두 있는 원소를 제거하는 것을 이차 또는 집합 연산이라고 한다.
    s1 = {1, 2, 3, 4}
    s2 = {3, 4, 5, 6}
    result = s1 ^ s2
    print(result)
    

    위 코드의 인쇄 결과에는 두 컬렉션의 동일한 요소(즉 교차 부분의 요소)가 포함되지 않습니다.
    {1, 2, 5, 6}
    

    서브셋 검사


    먼저 이러한 수학 개념을 이해해야 한다.
    만약에 a집합 중의 원소가 모두 b집합에 나타난다면 이 b집합은 a집합의 서브집합이고 b집합은 a집합의 초집합이다.
    기호<=를 사용하여 한 집합이 다른 집합의 서브집합인지 확인합니다.
    s1 = {1, 2, 3}
    s2 = {1, 2, 3, 4, 5, 6}
    print(s1 <= s2)
    

    위의 인쇄 결과는 다음과 같습니다.
    True
    

    기호>=를 사용하여 한 집합이 다른 집합의 초집합인지 확인합니다.
    s2 = {1, 2, 3, 4, 5, 6}
    s1 = {1, 2, 3}
    print(s1 >= s2)
    

    위의 인쇄 결과는 다음과 같습니다.
    True
    

    수학적:
    만약에 초집합 b에 서브집합 a의 모든 원소가 함유되어 있고 b에 a에 없는 원소가 있다면 b는 a의 진짜 초집합이고 a는 b의 진짜 서브집합이다.
    기호<를 사용하여 진짜 집합을 검사하고, >를 사용하여 진짜 집합이 맞는지 검사한다.

    좋은 웹페이지 즐겨찾기