Python 集合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 集合相关的知识,希望对你有一定的参考价值。

  集合
集合与列表差不多,只不过集合中的数据是不会存在重复值
例如:
列表的数据可以为:
list_a=[1,2,3,3,3,4]
将list_a转换为集合时,数据就变为:
list_a=[1,2,3,4]

集合的常用操作:
set()函数
len()函数
add()方法
update()方法
union()方法
pop()方法
remove()方法
discard()方法
intersection()方法
intersection_update()方法
clear()方法
difference()方法
difference_update()方法
issubset()方法
issuperset()方法

 

set()函数,用于生成集合
list_a=[0,1,2,3,4,5]
set_a=set(list_a)  #将列表转换为集合
print set_a
运行结果:
set([0, 1, 2, 3, 4, 5])
[Finished in 0.2s]

len()函数,用于获取集合元素个数
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
print len(set_a)
运行结果:
4
[Finished in 0.2s]

检查成员元素
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
print "a" in set_a     #检查a是否存在于set_a集合中
运行结果:
True
[Finished in 0.2s]


add()方法,用于添加集合元素
set_a=set(list_a)
set_a.add("A")   #向集合添加元素
print set_a
运行结果:
set([0, 1, 2, 3, 4, 5, ‘A‘])
[Finished in 0.3s]

update()方法,用于向集合中添加多个元素
list_a=[0,1,2,3,4,5]
set_b=set([9,8,7,6])
set_a=set(list_a)
set_a.update(set_b)
print set_a
运行结果:
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
[Finished in 0.2s]

union()方法,合并两个集合,生成一个新的集合
set_a=set([‘a‘,‘b‘,‘c‘])
set_b=set([9,8,7,6])
set_c=set_a.union(set_b)
print set_c
运行结果:
set([‘a‘, ‘c‘, ‘b‘, 6, 7, 8, 9])
[Finished in 0.2s]

pop()方法,用于移除一个元素,并返回被移除的元素,如果集合为空,则出现TypeError异常。
set_a=set([‘a‘,‘b‘,‘c‘])
print set_a
print set_a.pop()
运行结果:
set([‘a‘, ‘c‘, ‘b‘])
a
[Finished in 0.2s]

remove()方法,用于移除集合中的一个元素,如果被移除的元素不存在则出现异常
set_a=set([‘a‘,‘b‘,‘c‘])
print set_a
set_a.remove("b")
print set_a
运行结果:
set([‘a‘, ‘c‘, ‘b‘])    
set([‘a‘, ‘c‘])    #移除后
[Finished in 0.2s]


discard()方法,用于移除元素(无返回值),如果不存在此元素,也不会出现异常
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_a.discard("a")   #移除集合中的a元素
print set_a
运行结果:
set([‘c‘, ‘b‘, ‘d‘])
[Finished in 0.2s]


intersection()方法,取集合的并集,生成新的集合
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_b=set([‘c‘,‘a‘])
set_c=set_a.intersection(set_b)
print set_c
运行结果:
set([‘a‘, ‘c‘])
[Finished in 0.2s]


intersection_update()方法,取集合的并集,并更新到集合a中
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_b=set([‘c‘,‘a‘])
set_a.intersection_update(set_b)   #将集合a和集合b的并集,更新到集合a中
print set_a
运行结果:
set([‘a‘, ‘c‘])
[Finished in 0.2s]
clear()方法,用于清空集合里的所有元素.
set_a=set([‘a‘,‘b‘,‘c‘])
print set_a
set_a.clear()
print set_a
运行结果:
set([‘a‘, ‘c‘, ‘b‘])
set([])
[Finished in 0.2s]

difference()方法,用于集合相减(将集合1-集合2),并生成新的集合
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_b=set([‘a‘,‘b‘])
set_c=set_a.difference(set_b)  #将集合a-集合b
print set_c
运行结果:
set([‘c‘, ‘d‘])
[Finished in 0.2s]

difference_update()方法,用于移除集合1中与集合2相同的元素,不生成新的集合
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_b=set([‘a‘,‘b‘])
set_c=set_a.difference_update(set_b)   #移除集合a中与集合b相同的元素
print set_a
运行结果:
set([‘c‘, ‘d‘])
[Finished in 0.2s]


issubset()方法,用于判断集合b是否(包含于)集合a,如果(包含于)就返回true,反之返回false
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_b=set([‘c‘,‘a‘])
set_c=set_b.issubset(set_a)   #检查集合b是否包含于集合a
print set_c
运行结果:
True
[Finished in 0.2s]


issuperset()方法,用于判断集合a是否(包含)集合b,如果(包含)就返回true,反之返回false
set_a=set([‘a‘,‘b‘,‘c‘,"d"])
set_b=set([‘c‘,‘a‘])
set_c=set_a.issuperset(set_b)   #检查集合a是否包含集合b
print set_c
运行结果:
True
[Finished in 0.2s]

  






















以上是关于Python 集合的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

Alfred常见使用

比较 C# 中的字符串片段并从集合中删除项目

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段