标签:python学习 key 区别 转换 出现 类型 move 并集 china
python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重。
集合是无序的,集合中的元素必须是不可变类型。集合可以作为字典的key。
集合用一对花括号{}定义
set = {'dog','cat','pig','monkey'}
print(set)
# 输出
{'pig', 'cat', 'monkey', 'dog'}
set = {'dog','cat','pig','monkey'}
set.add('china')
set.add('china')
print(set)
# 输出
{'cat', 'pig', 'china', 'monkey', 'dog'}
注意:集合内部不允许出现重复元素,如果有重复元素,集合会自动去重,所以当往集合的尾部添加两个相同元素时,只会保留一个。
set = {'dog','cat','pig','monkey'}
set.clear()
print(set)
# 输出
set()
set = {'dog','cat','pig','monkey'}
print(set.pop())
print(set)
# 输出
'pig'
{'cat', 'monkey', 'dog'}
set = {'dog','cat','pig','monkey'}
set.remove('dog')
print(set)
set.remove('dog')
# 输出
{'pig', 'cat', 'monkey'}
报错,因为已经把元素'dog'从集合中删去了,再次删除'dog'时,由于集合中已经不存在该元素了,所以报错
set = {'dog','cat','pig','monkey'}
set.discard('dog')
print(set)
print(set.discard('dog'))
# 输出
{'pig', 'cat', 'monkey'}
None
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 & set2)
# 输出
{'c', 'a'}
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 | set2)
# 输出
{'c', 'a', 'h', 'd', 'b', 'l', 'e'}
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 - set2)
# 输出
{'b', 'd'}
利用集合内不允许出现重复元素这一天然特点,我们可以用来对列表去重
l1 = ['h','e','l','l','o']
#1.将列表转为集合,集合会自动去重
s1 = set(l1)
#2.将去重后的集合再转回列表
l1 = list(s1)
print(l1)
# 输出
['l', 'o', 'h', 'e']
想必细心的你已经看出来了,去重前后的列表中的元素顺序变了,由于集合是无序的,有序的列表转换成集合后变成了无序的,所以元素的顺序发生了变化,这并不是我们想要的,我们只想去掉列表中重复的元素而不想改变列表中元素的顺序,这也就是这种去重方法的缺点。
python学习之【第七篇】:Python中的集合及其所具有的方法
标签:python学习 key 区别 转换 出现 类型 move 并集 china
原文地址:https://www.cnblogs.com/wangjiachen666/p/9610307.html