集是可以修改的,增加元素可以用add和update函数。删除可以用pop、discard、remove等函数。
1 增加集里的元素
add函数的参数视为一个整体插入到集里,而update函数传入的参数是把要传入的元素拆分,做为个体传入到集合中。
s = set("hello") print (s) s.add("a") print (s) s.add("e") print (s) s.add("python") print (s) s.update([1, 3, 4, "e"]) print (s)
程序执行结果:
set(['h', 'e', 'l', 'o'])
set(['a', 'h', 'e', 'l', 'o'])
set(['a', 'h', 'e', 'l', 'o'])
set(['a', 'e', 'python', 'h', 'l', 'o'])
set(['a', 1, 3, 'e', 'python', 'h', 'l', 'o', 4])
2 删除集里的元素
删除集合里的元素可以用pop函数,pop函数和列表的pop机制一样,随机删除一个返回值就是被删除的那个元素值,但如果集是空集用pop会报错异常。
s = set("hello") print (s) print ("pop ->", s.pop()) print (s) s = set() print (s) print (s.pop())
程序执行结果如下:
{'o', 'e', 'h', 'l'}
pop -> o
{'e', 'h', 'l'}
set()
Traceback (most recent call last):
File "D:\workspace_python\pythonProject\set.py", line 7, in <module>
print (s.pop())
KeyError: 'pop from an empty set'
异常的原因是集此时是空的。
discard函数可以删除集里某值,如果discard的参数值不属于集无任何操作。
s = set("hello") print (s) s.discard("o") print (s) s.discard("a") print (s)
程序执行结果:
{'e', 'l', 'o', 'h'}
{'e', 'l', 'h'}
{'e', 'l', 'h'}
remove函数和discard基本一样,区别在于函数的参数值不属于集时程序报错异常。
s = set("hello") print (s) s.remove("o") print (s) s.remove("a") print (s)
程序执行结果:
{'l', 'e', 'o', 'h'}
{'l', 'e', 'h'}
Traceback (most recent call last):
File "D:\workspace_python\pythonProject\set.py", line 5, in <module>
s.remove("a")
KeyError: 'a'