set是Python中一种基本数据类型,它分为可变集合(set)和不可变集合(frozenset)两种。类似于其他语言,集合是一个无序不重复元素集,包括创建集合set、向集合中添加元素、删除集合中的元素、求集合的交集、并集、差集等操作。

创建空集合 s = set()

创建集合

set1 = {1,2,3,4,5,6} set1 set([1, 2, 3, 4, 5, 6])

创建不可变集合 冰冻集合 不能被修改元素、删除元组,但是可以删除整个集合 可以使用集合的其他操作

a = frozenset("123456789") a frozenset(['1', '3', '2', '5', '4', '7', '6', '9', '8'])

a.add(10) Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'frozenset' object has no attribute 'add'

列表转换成集合

set([1,1,2,3,4]) set([1, 2, 3, 4])

字符串转换成集合

set("abc") set(['a', 'c', 'b'])

元组转换成集合

set((2,3,4,5)) set([2, 3, 4, 5])

字典转换成集合,只能转换key

set({1:"a",2:"b",3:"c"}) set([1, 2, 3]) 其他类型数据转换成集合后重复元素被去除,只保留一个

添加元素 set.add(value) add()方法是将要添加的元素作为一个整体添加到集合中。

a.add("d") a set(['a', 'c', 'b', 'd'])

a.add("456") a set(['a', 'c', 'b', 'd', '456']) set.update(value) update()方法把传入的元素拆分成单个字符添加到集合中,去掉重复的;

a.update("789") a set(['a', 'c', 'b', 'd', '456', '7', '9', '8'])

删除集合元素 set.remove(value) 删除指定值的元素,如果集合元素不存在会报错

a set(['a', 1, 2, 3, 4, 5, 'c', '[2,3,4]', 'b'])

a.remove("a") a set([1, 2, 3, 4, 5, 'c', '[2,3,4]', 'b'])

a.remove("[2,3,4]") a set([1, 2, 3, 4, 5, 'c', 'b']) set.pop() pop()返回一个任意元素并删除

a set([1, 2, 3, 4, 5, 'c', 'b'])

a.pop() 1

a set([2, 3, 4, 5, 'c', 'b'])

a.pop() 2

a set([3, 4, 5, 'c', 'b']) set.discard(value) 在集合中查找元素,如果存在则删除;如果没找到,则什么也不做。该函数没有返回值

set1 set(['1', '3', '2', '5', '4'])

set1.discard("3") set1 set(['1', '2', '5', '4']) 遍历集合 使用in进行遍历

a set([1, 2, 3, 4, 5, 'c', 'b'])

for value in a: ... print value ... 1 2 3 4 5 c B 使用enumerate进行遍历

set_1 = {1,2,3,4,5,"a"} set_1 set(['a', 1, 2, 3, 4, 5])

for index,value in enumerate(set_1): ... print index,value ... 0 a 1 1 2 2 3 3 4 4 5 5