set built-in function
集合類型
集合對象是一組無序排列的可哈希的值,集合可以作為字典的鍵。因為集合是無序的,不可以為集合創建索引或執行切片操作,也沒有鍵可以用來獲取元素的值。
集合有兩種不同的類型,可變集合和不可變集合??勺兗喜皇强晒5闹?/span>
集合類型中元素不可重復
?
創建集合類型的方法只有一個,就是集合的工廠方法set()和frozenste(),括號內的參數必須是可迭代的對象,例如一個文件或著一個字典
set('book')
>>>['b','k','o','o']
?
當進行集合類型的交集并集差集時,所產生的結果類型和左操作數的類型相同,例如:
?
s = set('continue') t = frozenset('break')v = s | t print(v) >>>{'o', 'u', 't', 'n', 'e', 'k', 'c', 'i', 'b', 'r', 'a'} print(type(v)) >>><class 'set'> # 產生的類型和 s 的類型相同?
?
dir(set):
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
?
?
1.add(obj) 在集合中添加對象obj
?
?
s = set('book') s.add('shop') print(s)>>>{'o', 'k', 'shop', 'b'}?
2.clear 刪除集合中的所有元素
s = set('book') s.clear() print(s)>>>set()3.s.copy 返回一個新集合,它是集合s的淺復制
4.s.difference(t) ?返回一個新集合,該集合是s的成員,但不是t的成員,相當于s - t(差分操作)
s = set('book') t = set('shop') v = s.difference(t) print(v)>>>{'b', 'k'}5.s.difference_update(t) s中的成員是屬于s但不包含在t中的元素,它與difference的區別在于difference會返回一個新集合,而它不會
s = set('book') t = set('shop') s.difference_update(t) print(s)>>>{'b', 'k'}6.s.discard(obj) 如果obj是集合s中的元素。從集合s中刪除對象obj
s = set('book') s.discard('o') print(s)>>>{'k', 'b'}7.s.intersection(t) 返回一個新集合,是s和t的交集,等價操作符 s & t
s = set('book') t = set('shop') v = s.intersection(t) print(v)>>>{'o'}8.s.intersection_update(t) 和上面類似,只是不返回新集合
9.s.isdisjoint(t) 如果集合s和t沒用交集,返回True,否則返回False
s = set('book') t = set('shp') v = s.isdisjoint(t) print(v)>>>True10.s.issubset(t) 如果s是t的子集,返回True,否則返回False
11.s.issuperset(t) 如果t是s的超集,返回True,否則返回False
s = set('bookshop') t = set('book') v = s.issuperset(t) print(v)>>>True12.pop() 刪除集合中的任意一個對象,并返回它
s = set('bookshop') v = s.pop() print(v)>>>p # 不唯一,可以是s中任意一個對象13.s.remove(obj) 刪除對象obj,如果集合里面沒有obj,則有keyerror錯誤
14.s.symmetric_difference(t) 返回以個新集合,該集合是s或t的成員,但不是s和t共有的成員。對稱差分操作,等價操作符是s ^ t
s = set('bookshop') t = set('break') v = s.symmetric_difference(t) print(v)>>>{'o', 'r', 'p', 'a', 'e', 'h', 's'}15.s.symmetric_difference_update(t) 和上面類似,只是不返回新集合
16.union 并集,等價操作符是s | t
s = set('bookshop') t = set('break') v = s.union(t) print(v)>>>{'s', 'a', 'b', 'r', 'p', 'e', 'k', 'o', 'h'}17.s.update(t) 用t中的元素修改s
s = set('bookshop') t = set('break') s.update(t) print(s)>>>{'p', 'e', 'r', 'b', 'o', 'k', 'h', 'a', 's'}?
?
以上
?
轉載于:https://www.cnblogs.com/learnC/p/5963162.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的set built-in function的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 基础概念了解
- 下一篇: 腾讯一面有感(移动开发岗位)