前文说到python中的字典。
此外,python中还很常用的哈希表就是set。
set中的数据项可以是任意不可变数据类型。
set1 = {1,"2",True}
常见操作:
- 创建
{}或set()
thisset = {1,2}
print(thisset) # {1,2}
thatset = set((1,2))
print(thatset) # {1,2}
- 增
增加一个数据项用add
增加多个数据项用update
thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
tropical = {"pineapple", "mango", "papaya"}
thisset.update(tropical)
此外,update的参数不一定是set,也可以是任何可迭代对象比如元祖,列表和字典。
thisset = {"apple", "banana", "cherry"}
mylist = ["kiwi", "orange"]
thisset.update(mylist)
-
删
remove() 或 discard() 或pop()或clear()或del
两者的区别在于删除set中不存在的项,remove会报错而discard不会报错。
和字典一样,set也可以使用pop方法来删除set中的最后一项。但是!!set是无序的,你也不知道会pop哪个元素,pop()的返回值是删除的数据项的值。 -
查
for循环 或用in关键字检查某数据项是否在set中 -
改
set中的值不可修改 -
并集:union
set1 = {1,2,3}
set2 = {2,3,4}
set3 = set1.union(set2)
print(set3) # {1,2,3,4}
- 交集:intersection
set1 = {1,2,3}
set2 = {2,3,4}
set3 = set1.intersection(set2)
print(set3) # {2,3}
- 差集:difference
set1 = {1,2,3}
set2 = {2,3,4}
set3 = set1.difference(set2)
print(set3) #{1}
- symmetric_difference
set1 = {1,2,3}
set2 ={2,3,4}
set3 =set1.symmetric_difference(set2)
print(set3) # {1,4}
注意事项
- 无序
无序也就是set中的每一项没有确定的顺序。每次使用的时候set中的数据项出现的顺序都不一样,因此不能用索引来查询。
- 不可变
set是不可变的就是说set一旦创建之后就不能改变数据项的值,但可以添加新的项。
- 不可重复
set中的数据项是不能重复出现的。
整理自:https://www.w3schools.com/python/python_sets.asp