Python 还包括集合set的数据类型。集合是没有重复元素的无序集合。基本用途包括成员测试和消除重复条目。大括号{}或 set()函数可用于创建集合。
colors = {"red","green","blue","red"}
print(colors)
print(len(colors))
print("red" in colors)
执行结果:
{'green', 'blue', 'red'}
3
True
fruits = set(["apple","banana","apple","fig","banana"])
print(fruits)
print(len(fruits))
print("cherry" in fruits)
执行结果:
{'apple', 'banana', 'fig'}
3
False
请注意,set()构造函数接受可迭代对象来构造包含字符串的集合。 set(“abc”) 与 set([“a”,”b”,”c”])本质上是一样的,设置项是无序的、不可更改的,并且不允许重复值。
一、无序性
集合是不可更改的,这意味着在创建集合后我们无法更改项目。创建集合后,无法更改其项目-不支持索引,但可以使用add()函数添加新项。
charset = set("abc")
#print(charset[0]) 会报错
charset.add("d")
print(charset)
执行结果:
{'a', 'b', 'd', 'c'}
二、不可重复性
如前面的例子,集合中不能有相同值的项目,重复值将被忽略。
三、添加项目
要将一个项目添加到集合中,可使用add()方法。
要将另一个集合中的项目添加到当前集合中,请使用update()方法。
fruits1 = {"apple","banana"}
fruits2 = {"mango","cherry","papaya"}
fruits1.update(fruits2)
print(fruits1)
执行结果:
{'cherry', 'papaya', 'banana', 'apple', 'mango'}
update()方法内的参数不一定必须是集合,可以是任何可迭代对象,例如字符串、列表等。
四、删除项目
若要删除集合中的项目,可以使用remove()或者discard()方法。如果要删除的项目不存在,前者会引发错误,后者不会。
fruits = {"apple","mango","cherry","papaya"}
fruits.remove("apple")
print(fruits)
#fruits.remove("orange") 会引发错误
fruits.discard("organe")
执行结果:
{'cherry', 'papaya', 'mango'}