本文共 1714 字,大约阅读时间需要 5 分钟。
set是Python中一种基本数据类型,它分为可变集合(set)和不可变集合(frozenset)两种。类似于其他语言,集合是一个无序不重复元素集,包括创建集合set、向集合中添加元素、删除集合中的元素、求集合的交集、并集、差集等操作。
创建空集合
s = set()创建集合
set1 = {1,2,3,4,5,6}
set1set([1, 2, 3, 4, 5, 6])
创建不可变集合 冰冻集合
不能被修改元素、删除元组,但是可以删除整个集合可以使用集合的其他操作a = frozenset("123456789")
afrozenset(['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")
aset(['a', 'c', 'b', 'd'])a.add("456")
aset(['a', 'c', 'b', 'd', '456'])set.update(value)update()方法把传入的元素拆分成单个字符添加到集合中,去掉重复的;a.update("789")aset(['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")aset([1, 2, 3, 4, 5, 'c', '[2,3,4]', 'b'])a.remove("[2,3,4]")aset([1, 2, 3, 4, 5, 'c', 'b'])set.pop() pop()返回一个任意元素并删除aset([1, 2, 3, 4, 5, 'c', 'b'])a.pop()1aset([2, 3, 4, 5, 'c', 'b'])a.pop()2aset([3, 4, 5, 'c', 'b'])set.discard(value)在集合中查找元素,如果存在则删除;如果没找到,则什么也不做。该函数没有返回值set1set(['1', '3', '2', '5', '4'])set1.discard("3")set1set(['1', '2', '5', '4'])遍历集合 使用in进行遍历aset([1, 2, 3, 4, 5, 'c', 'b'])for value in a:... print value...12345cB使用enumerate进行遍历set_1 = {1,2,3,4,5,"a"}set_1set(['a', 1, 2, 3, 4, 5])for index,value in enumerate(set_1):... print index,value...0 a1 12 23 34 45 5
转载于:https://blog.51cto.com/13496943/2129562