首页 > 技术文章 > python集合的操作

XhyTechnologyShare 2019-11-13 17:03 原文

集合(set):集合是一个无序的序列,集合中的元素可以是任意数据类型;表现形式是set(集合的元素),能够实现自动去重;集合传入的必须是一个hashable类型值,(不能存储字典格式的值);并且创建集合的时候还不能够这样表示set1={},这个表示不是空集合,这表示的是空字典;

1.创建一个集合

# 直接声明:
set1 = {1,2,3,4}

list1 = [1,2,3,4,1,2,3,4] set1 = set(list1) # 将列表传入 print(set1) # 返回值为:{1, 2, 3, 4}

2.集合的运算关系

交集:取两个集合的相同元素构成一个新集合

# 集合求交集
set1 = {1,2,3,4,5,6,'c','d'}
set2 = {'a','b','c','d',1,6}
print(set1 & set2)  # 返回的结果为:{1, 'c', 'd', 6}

并集:取两个集合的所有元素构成一个新集合去除相同元素

# 集合求并集
set1 = {1,2,3,4,5,6,'c','d'}
set2 = {'a','b','c','d',1,6}
print(set1 | set2)  # 返回的结果为:{'b', 1, 2, 3, 4, 5, 6, 'a', 'd', 'c'}

差集:由A集合-B集合,去掉A集合中元素在B集合中,只取A集合中元素不在B集合中的,并生成一个新集合

# 集合求差集
set1 = {1,2,3,4,5,6,'c','d'}
set2 = {'a','b','c','d',1,6}
print(set1 - set2)  # 返回的结果为:{2, 3, 4, 5}

非集合:取两个集合的交集,然后根据交集取两个集合的补集,最后将补集取并集

# 集合求非集
set1 = {1,2,3,4,5,6,'c','d'}
set2 = {'a','b','c','d',1,6}
print(set1 ^ set2)  # 返回的结果为:{2, 3, 4, 5, 'a', 'b'}

3.集合的判断方法

# 判断此集合是否被另外集合包含
print(set1.issubset(set2)) # 如果set2集合中元素包含了set1则会返回True否则返回False
# 判断此集合是否包含另外一个集合
print(set1.issuperset(set2))# 如果set1集合中元素包含了set2则会返回True否则返回False
# 如果两个集合的交集为空则返回True
print(set1.isdisjoint(set2))

 

推荐阅读