天天看點

python集合(set)類型

參考連結: Python set集合 intersection()

集合(set) 

python的資料結構的另一種表現形式。作用:自動清除集合類型中的元素重複資料(set),以及元素排序。集合類型的元素排序是無序不重複。 

快速通路集合(set) 

set1=set([1,2,3,4])

set2=set(['A','B','D','C'])

set3=set(['A','C', 'B', 'D'])

set4=set(['A','B','D','C','B'])

set5=set('E')

#set6=set('E','A')

#錯誤提示TypeError: set expected at most 1 arguments, got 2------是以set6不合理

set7=set('hello')

set8=set(['A','B','D','C','B'])

print('1.',set1)

print('2.',set2)

print('3.',set3)

print('4.',set4)

print('5.',set5)

print('6.',set7)

print('7.',set8)

print('8.',id(set1))

print('9.',id(set2))

print('10.',id(set3))

print('11.',id(set4))

print('12.',id(set5))

print('13.',id(set7))

print('14.',id(set8))

#輸出1. {1, 2, 3, 4}

2. {'A', 'C', 'B', 'D'}

3. {'A', 'C', 'B', 'D'}

4. {'A', 'C', 'B', 'D'}

5. {'E'}

6. {'h', 'e', 'l', 'o'}

7. {'A', 'C', 'B', 'D'}

8. 1462456352552

9. 1462470585032

10. 1462470585704

11. 1462456352328

12. 1462470586152

13. 1462470585928

14. 1462470585480

涉及修改集合資料的相關函數以及運算符—程式說明 

set9=set([1,2,3,4,5,6,7])

set20=set([1,2,3,5,8,4,7])

set11=set9

set12=set9

#set13=set9

set14=set9

set15=set9

set16=set9

#set17=set9

set18=set9

set19=set9

#set22=set9

print('18.',set9)

print('19.',set20)

#輸出 18. {1, 2, 3, 4, 5, 6, 7}

      19. {1, 2, 3, 4, 5, 7, 8}

set9.add(8)

print('1.',set9)

#輸出 1. {1, 2, 3, 4, 5, 6, 7, 8}

#.add 集合類型添加元素

set21=set20.copy()

print('13.',id(set20))

print('14.',id(set21))

print('15.',set21)

print('16.',set20)

#輸出 13. 1462470584360

      14. 1462472086472

      15. {1, 2, 3, 4, 5, 7, 8}

      16. {1, 2, 3, 4, 5, 7, 8}

#.copy 集合類型元素複制

set9.discard(2)

set11.discard(99)

print('3.',set9)

print('4.',set11)

#輸出 3. {1, 3, 4, 5, 6, 7, 8}

      4. {1, 3, 4, 5, 6, 7, 8}

#.discard 删除集合類型中指定元素,如果指定元素不存在不會報錯

set12.pop()

#set13.pop(1)

#錯誤提示STypeError: pop() takes no arguments (1 given)------是以set13不合理

print('5.',set12)

#print('6.',set13)

#輸出 5. {3, 4, 5, 6, 7, 8}

#.pop 随機删除集合類型中元素

set14.remove(7)

set15.remove(99)

#輸出 KeyError: 99(出現報錯) 

print('7.',set14)

print('8.',set15)

#輸出 7. {3, 4, 5, 6, 8}

#.remove 删除集合類型中指定元素,如果指定元素不存在會報錯,并終止程式

set16.update([88,99])

#set17.update([88,99,77])

#錯誤提示SyntaxError: invalid character in identifier------是以set17不合理

set18.update([88])

print('9.',set16)

#print('10.',set17)

print('11.',set18)

#輸出 9. {3, 4, 5, 6, 99, 8, 88}

     11. {3, 4, 5, 6, 99, 8, 88}

#.update 更新集合類型的元素

set19.clear()

#del set22()

#錯誤提示SyntaxError: can't delete function call------是以set22不合理

print('12.',set19)

#print('17.',set22)

#輸出 12. set()

#.claer 清空集合類型的元素

 .del set() 清空集合

print('20.',set9.issubset(set20))

print('21.',set9<=set20)

#輸出 21. False

#輸出 20. False

#setA.issubset(setB) 運算符: setA<=setB 檢測setA中的每一個元素是否都在setB中,子集(setB是否是setA的子集)

print('22.',set9.issuperset(set20))

#輸出 22. False

#setA.issuperset(setB) 運算符: setA>=setB 檢測setB中的每一個元素是否都在setA中,父集(setB是否是setA的父集)

print('23.',set9.union(set20))

#輸出 23. {1, 2, 3, 4, 5, 6, 7, 8}

#setA.union(setB) 運算符: setA\setB 創造一個新的集合,元素包含setB和setA所有元素,并集(所有元素:setB+setA)

print('24.',set9.intersection(set20))

#輸出 24. {1, 2, 3, 4, 5, 7}

#setA.intersection(setB) 運算符: setA&setB 檢創造一個新的集合,元素包含setB和setA共同元素,交集(共同元素:setB+setA)

print('25.',set20.difference(set9))

#輸出 25. {8}

#setB.difference(setA) 運算符: setB-setA 檢創造一個新的集合,元素包含setB和setA集合元素中,隻setB所擁有的元素,差集(差異元素:setB-setA)

print('26.',set9.symmetric_difference(set20))

#輸出 26. {6, 8}

#setA.symmetric_difference(setB) 運算符: setA^setB 檢創造一個新的集合,元素包含setB和setA集合元素中,不重複的元素,對稱差集(差異元素:setA^setB)

集合(set)幫助文檔 

print(help(set))

Help on class set in module builtins:

class set(object)

 |  set() -> new empty set object

 |  set(iterable) -> new set object

 |  

 |  Build an unordered collection of unique elements.

 |  

 |  Methods defined here:

 |  

 |  __and__(self, value, /)

 |  Return self&value.

 |  

 |  __contains__(...)

 |  x.__contains__(y) <==> y in x.

 |  

 |  __eq__(self, value, /)

 |  Return self==value.

 |  

 |  __ge__(self, value, /)

 |  Return self>=value.

 |  

 |  __getattribute__(self, name, /)

 |  Return getattr(self, name).

 |  

 |  __gt__(self, value, /)

 |  Return self>value.

 |  

 |  __iand__(self, value, /)

 |  Return self&=value.

 |  

 |  __init__(self, /, *args, **kwargs)

 |  Initialize self.  See help(type(self)) for accurate signature.

 |  

 |  __ior__(self, value, /)

 |  Return self|=value.

 |  

 |  __isub__(self, value, /)

 |  Return self-=value.

 |  

 |  __iter__(self, /)

 |  Implement iter(self).

 |  

 |  __ixor__(self, value, /)

 |  Return self^=value.

 |  

 |  __le__(self, value, /)

 |  Return self<=value.

 |  

 |  __len__(self, /)

 |  Return len(self).

 |  

 |  __lt__(self, value, /)

 |  Return self<value.

 |  

 |  __ne__(self, value, /)

 |  Return self!=value.

 |  

 |  __new__(*args, **kwargs) from builtins.type

 |  Create and return a new object.  See help(type) for accurate signature.

 |  

 |  __or__(self, value, /)

 |  Return self|value.

 |  

 |  __rand__(self, value, /)

 |  Return value&self.

 |  

 |  __reduce__(...)

 |  Return state information for pickling.

 |  

 |  __repr__(self, /)

 |  Return repr(self).

 |  

 |  __ror__(self, value, /)

 |  Return value|self.

 |  

 |  __rsub__(self, value, /)

 |  Return value-self.

 |  

 |  __rxor__(self, value, /)

 |  Return value^self.

 |  

 |  __sizeof__(...)

 |  S.__sizeof__() -> size of S in memory, in bytes

 |  

 |  __sub__(self, value, /)

 |  Return self-value.

 |  

 |  __xor__(self, value, /)

 |  Return self^value.

 |  

 |  add(...)

 |  Add an element to a set.

 |  

 |  This has no effect if the element is already present.

 |  

 |  clear(...)

 |  Remove all elements from this set.

 |  

 |  copy(...)

 |  Return a shallow copy of a set.

 |  

 |  difference(...)

 |  Return the difference of two or more sets as a new set.

 |  

 |  (i.e. all elements that are in this set but not the others.)

 |  

 |  difference_update(...)

 |  Remove all elements of another set from this set.

 |  

 |  discard(...)

 |  Remove an element from a set if it is a member.

 |  

 |  If the element is not a member, do nothing.

 |  

 |  intersection(...)

 |  Return the intersection of two sets as a new set.

 |  

 |  (i.e. all elements that are in both sets.)

 |  

 |  intersection_update(...)

 |  Update a set with the intersection of itself and another.

 |  

 |  isdisjoint(...)

 |  Return True if two sets have a null intersection.

 |  

 |  issubset(...)

 |  Report whether another set contains this set.

 |  

 |  issuperset(...)

 |  Report whether this set contains another set.

 |  

 |  pop(...)

 |  Remove and return an arbitrary set element.

 |  Raises KeyError if the set is empty.

 |  

 |  remove(...)

 |  Remove an element from a set; it must be a member.

 |  

 |  If the element is not a member, raise a KeyError.

 |  

 |  symmetric_difference(...)

 |  Return the symmetric difference of two sets as a new set.

 |  

 |  (i.e. all elements that are in exactly one of the sets.)

 |  

 |  symmetric_difference_update(...)

 |  Update a set with the symmetric difference of itself and another.

 |  

 |  union(...)

 |  Return the union of sets as a new set.

 |  

 |  (i.e. all elements that are in either set.)

 |  

 |  update(...)

 |  Update a set with the union of itself and others.

 |  

 |  ----------------------------------------------------------------------

 |  Data and other attributes defined here:

 |  

 |  __hash__ = None