当前位置:   article > 正文

Python学习之路——集合(set)_python将集合set_a与集合set_b中相同元素提取为一个新集合

python将集合set_a与集合set_b中相同元素提取为一个新集合


集合是Python里一个无序的不重复元素序列。

一、创建集合

集合和列表基本一致,但是集合具有以下几个特点:
1.集合只能存储不可变对象
2.集合中存储的对象是无序的
3.集合中不能出现重复的元素

# 方式一
set1 = {'set'}
# 方式二
set2 = set() # 创建一个空字典
# set()函数中可以传递一个可迭代对象
set3 = set('set') # ser3 = {'s', 'e', 't'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

二、访问集合的值

1. 通过索引访问

集合作为一种无序的序列,是不能够通过索引直接访问的,要想通过索引访问,只能先将它转化为其他有序序列,如元组和列表。并且由于集合是无序的,通过索引访问的时候也并非是按照存入的顺序。

set1 = {'P', 'y', 't', 'h', 'o', 'n'}
print(list(set1)[0])
print(tuple(set1)[0])
  • 1
  • 2
  • 3

2. 遍历集合

集合作为一种无序的序列,虽然不能通过索引访问,但是作为一种序列,依然可以使用for语句进行遍历。注意:遍历结果也是无序的。

set1 = {'P', 'y', 't', 'h', 'o', 'n'}
for i in set1:
	print(i)
  • 1
  • 2
  • 3

三、集合的特殊操作

1. 判断元素是否在集合内部

set1 = {'P', 'y', 't', 'h', 'o', 'n'}
'P' in set1 # True
'P' not in set1 # False
  • 1
  • 2
  • 3

2. 集合的运算

假设有集合A和集合B:

(1) 交集

找集合A和和集合B中共有的元素就是求A和B的交集。

set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 & set2 # set3 = {3, 4, 5}
  • 1
  • 2
  • 3

(2) 并集

找集合A和和集合B中所有的元素就是求A和B的交集。

set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 & set2 # set3 = {1, 2, 3, 4, 5, 6, 7}
  • 1
  • 2
  • 3

(3) 差集

所有属于A且不属于B的元素的集合被称为A与B的差集。

set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 - set2 # set3 = {1, 2}
  • 1
  • 2
  • 3

(4) 异或集

集合A和集合B中除去相同元素后剩下的元素的集合叫做A和B的异或集。

set1 = {1,2,3,4,5}
set2 = {3,4,5,6,7}
set3 = set1 ^ set2 # set3 = {{1, 2, 6, 7}
  • 1
  • 2
  • 3

(5) 子集与真子集

如果集合A中包含有集合B的所有元素且含有集合B没有的元素,那么集合B就是集合A的真子集。如果集合A和集合B中元素相同,就是子集。空集是任意非空集合的真子集。

set1 = {3,4,5}
set2 = {3,4,5,6,7}
set1 < set2 # True
set1 <= set2 # True
  • 1
  • 2
  • 3
  • 4

(6) 超集与真超集

集合A中的每一个元素都在集合B中,且集合A中可能包含B中没有的元素,则集合A就是B的一个超集,反过来,B是A的子集。 A是B的超集,若A中一定有B中没有的元素,则A是B的真超集,反过来B是A的真子集。

set1 = {3,4,5}
set2 = {3,4,5,6,7}
set2 > set1 # True
set2 >= set1 # True
  • 1
  • 2
  • 3
  • 4

四、集合常用函数

1. 求取集合中元素个数

set1 = {1,2,3,4,5}
# len()函数可以用来求取集合中元素个数
len(set1) # 5
# 魔术方法 面向对象
set1.__len__() # 5
  • 1
  • 2
  • 3
  • 4
  • 5

2. 删除集合

set1 = {1,2,3,4,5}
# del()函数可以删除整个集合并回收地址
del set1
# 因为set1已经被回收了,所以调用时会报错
print(set1) # NameError: name 'set1' is not defined
  • 1
  • 2
  • 3
  • 4
  • 5

五、集合常用方法

1. 添加元素(add)

set1 = {1,2,3,4,5}
# add()方法可以向集合中添加元素
set1.add(6) # set1 = {1,2,3,4,5,6}
  • 1
  • 2
  • 3

2. 清空集合(clear)

set1 = {1,2,3,4,5}
# clear()方法可以清空集合
set1.clear() # set1 = {}
  • 1
  • 2
  • 3

3. 随机删除集合中的元素(pop)

set1 = {1,2,3,4,5}
# pop()方法会随机删除集合中一个元素并返回删除的元素
set1.pop()
  • 1
  • 2
  • 3

4. 删除集合中的指定元素(remove)

set1 = {1,2,3,4,5}
# remove()方法会删除集合指定元素
set1.remove(5) # set1 = {1,2,3,4}
# 当删除元素不在集合中时会抛出异常
set1.remove(6) # KeyError: 6
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/75397?site
推荐阅读
相关标签
  

闽ICP备14008679号