python集合 (set)

在python中,集合是一个无序的不重复元素序列,因此集合通常用来去除重复的元素,创建集合可以使用set函数或者大括号{},两个集合之间可以做并集,交集,差集操作.

1. 创建集合(set)

set_1 = set()   # 空集合
set_2 = {'python', 32, 983.9, 'python', 'php'}

集合里数据不会重复,即便set_2在创建时,内部有两个'python' 字符串,在赋值语句执行结束后,set_2里将只有1个'python'

创建一个空集合,一定要用set(),而不是{}, {}用来表示空字典。

和前面学习过的列表,元组,字典一样,集合里每个数据之间用逗号分隔,集合里的数据必须是可hash的,因此,集合里不能有字典,集合,列表这三种数据。

2. 添加删除元素

set_1 = set()
set_1.add('python')
set_1.add('python')
set_1.add('php')
set_1.add('java')
print(len(set_1))

set_1.remove('php')

添加元素使用add方法,上面的代码虽然添加了两次'python',但最终集合中只有一个'python'。

从集合中移除数据,使用remove方法,如果集合中没有这项数据,那么remove将会引发异常,一个更安全的方法是discard,如果数据不存在,不会引发异常。

3. 集合常用操作

3.1 clear,清空集合

列表,字典,集合的清空操作,都可以使用clear来完成。

my_set = {'python', 32, 983.9, 'python', 'php'}
my_set.clear()
print(my_set)

3.2 in 和 not in

in 和 not in 是成员运算符,对于列表,元组,字典,集合,判断一个数据是否在这些容器类型数据中,都可以使用成员运算符

my_set = {'python', 32, 983.9, 'python', 'php'}
print('php' in my_set)

3.3 交集

set1 = set(lst1)
set2 = set(lst2)

inter_set = set1.intersection(set2)
print(inter_set)

intersection计算两个集合的交集,程序运行结果是

{2, 5}

3.4 差集

diff_set = set1.difference(set2)
print(diff_set)

difference计算两个集合的差集,程序运行结果是

{1, 3, 6}

如果想计算哪些整数在lst2中而不在lst1中,则表达式为 set2.difference(set1)

3.5 并集

union = set1.union(set2)
print(union)

union计算两个集合的并集
程序运行结果

{1, 2, 3, 5, 6, 7, 9}

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案