python学习之第七篇:Python中的集合及其所具有的方法

Posted 难凉热血,码梦为生!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之第七篇:Python中的集合及其所具有的方法相关的知识,希望对你有一定的参考价值。

1.前言

python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重。
集合是无序的,集合中的元素必须是不可变类型。集合可以作为字典的key。

2.集合的定义

集合用一对花括号{}定义

set = {'dog','cat','pig','monkey'}
print(set)
# 输出
{'pig', 'cat', 'monkey', 'dog'}

3.集合的常见操作

  • add(x)
    往集合的尾部添加元素x
set = {'dog','cat','pig','monkey'}
set.add('china')
set.add('china')
print(set)
# 输出
{'cat', 'pig', 'china', 'monkey', 'dog'}

注意:集合内部不允许出现重复元素,如果有重复元素,集合会自动去重,所以当往集合的尾部添加两个相同元素时,只会保留一个。

  • clear()
    清空集合内的元素
set = {'dog','cat','pig','monkey'}
set.clear()
print(set)
# 输出
set()
  • pop()
    随机删除集合内的一个元素,并返回所删除的元素
set = {'dog','cat','pig','monkey'}
print(set.pop())
print(set)
# 输出
'pig'
{'cat', 'monkey', 'dog'}
  • remove(x)
    删除集合内的元素x,如果元素x不存在会报错
set = {'dog','cat','pig','monkey'}
set.remove('dog')
print(set)
set.remove('dog')
# 输出
{'pig', 'cat', 'monkey'}
报错,因为已经把元素'dog'从集合中删去了,再次删除'dog'时,由于集合中已经不存在该元素了,所以报错
  • discard(x)
    删除集合内的元素x,如果元素x不存在会返回None,不会报错
set = {'dog','cat','pig','monkey'}
set.discard('dog')
print(set)
print(set.discard('dog'))
# 输出
{'pig', 'cat', 'monkey'}
None

4.集合的关系运算

  • 求交集s1 & s2
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 & set2)
# 输出
{'c', 'a'}
  • 求并集s1 | s2
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 | set2)
# 输出
{'c', 'a', 'h', 'd', 'b', 'l', 'e'}
  • 求差集s1 - s2
set1 = {'a','b','c','d'}
set2 = {'h','e','a','l','c'}
print(set1 - set2)
# 输出
{'b', 'd'}

5.利用集合对列表去重

利用集合内不允许出现重复元素这一天然特点,我们可以用来对列表去重

l1 = ['h','e','l','l','o']
#1.将列表转为集合,集合会自动去重
s1 = set(l1)
#2.将去重后的集合再转回列表
l1 = list(s1)
print(l1)
# 输出
['l', 'o', 'h', 'e']

想必细心的你已经看出来了,去重前后的列表中的元素顺序变了,由于集合是无序的,有序的列表转换成集合后变成了无序的,所以元素的顺序发生了变化,这并不是我们想要的,我们只想去掉列表中重复的元素而不想改变列表中元素的顺序,这也就是这种去重方法的缺点。

以上是关于python学习之第七篇:Python中的集合及其所具有的方法的主要内容,如果未能解决你的问题,请参考以下文章

python 基础第七篇

python基础-第七篇-7.1初识类和对象

Python 学习之《Learn Python3 The Hard Way 》第七部分学习笔记

python学习之第四篇:Python中的列表及其所具有的方法

python学习之第二篇:Python中的数字及其所具有的方法

python学习之第五篇:Python中的元组及其所具有的方法