set 访问
想要访问 set 集合,用不了 index 或 key ,但可以通过 for 循环来迭代 set 集合,或者用 in
判断某一个值是否在集合中,如下代码所示:
thisset = {"apple", "banana", "cherry"}for x in thisset: print(x)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.pyapplebananacherry
接下来是用 in 的案例。
thisset = {"apple", "banana", "cherry"}print("banana" in thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.pyTrue
修改 item
集合一旦创建好之后,不能修改 set 中的项,只能新增。
新增 item
要想往 set 集合中新增,可以使用 add()
方法, 比如下面的例子。
thisset = {"apple", "banana", "cherry"}thisset.add("orange")print(thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py{'cherry', 'banana', 'orange', 'apple'}
新增 set 大集合
将一个set 整体加入到另一个 set 中,可以使用 update()
方法。
thisset = {"apple", "banana", "cherry"}tropical = {"pineapple", "mango", "papaya"}thisset.update(tropical)print(thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py{'banana', 'pineapple', 'papaya', 'mango', 'apple', 'cherry'}
set 的 update 方法除了可以单纯的添加 set 集合,还可以是任何可迭代的集合,比如:tuple,list,dict 等等。
thisset = {"apple", "banana", "cherry"}mylist = ["kiwi", "orange"]thisset.update(mylist)print(thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py{'cherry', 'orange', 'kiwi', 'apple', 'banana'}
移除 item
要想从 set 集合中移除某一个item,可以使用 remove()
或者 discard()
方法,如下代码所示:
thisset = {"apple", "banana", "cherry"}thisset.remove("banana")print(thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py{'cherry', 'apple'}
有些朋友可能就要问了,remove 和 discard 有什么区别?前者表示如果item不在集合中就会抛异常,后者则不会。
set 清空和删除
如何想把 set 集合中的所有元素都抹掉,可以使用 clear() 方法。
thisset = {"apple", "banana", "cherry"}thisset.clear()print(thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.pyset()
如果想把 set 集合释放掉,可以使用 del。
thisset = {"apple", "banana", "cherry"}del thissetprint(thisset)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.pyTraceback (most recent call last): File "e:/dream/markdown/python/app/app.py", line 5, in print(thisset)NameError: name 'thisset' is not defined
从上面代码可以看出,如果 del 之后想 print 的话,将会抛出异常。
set 合并
有几种方式可以实现 set 集合合并,要么使用 union ,要么使用 update,前者是非破坏性操作,后者就是一种破坏性了,可以细评如下代码:
set1 = {"a", "b" , "c"}set2 = {1, 2, 3}set3 = set1.union(set2)print(set3)set1 = {"a", "b" , "c"}set2 = {1, 2, 3}set1.update(set2)print(set1)
set 交集
set 之间除了 union 操作,还可以 intersection 求交集,如下代码所示:
x = {"apple", "banana", "cherry"}y = {"google", "microsoft", "apple"}z = x.intersection(y)print(z)PS E:dreammarkdownpython> & "C:/Program Files (x86)/Python/python.exe" e:/dream/markdown/python/app/app.py{'apple'}
set 更多方法
除了上面介绍的方法,set 集合中还有非常多的内建方法,如下经供参考。
译文链接:https://www.w3schools.com/python/python_sets_access.asp
更多高质量干货:参见我的 GitHub: python