Python集合哪些事

时间:2021-6-19 作者:qvyue

集合简介

集和是python内置数据类型之一,属于可变数据类型。

  • 由花括号 {} 把数据项包含起来
  • 集和是无序可变的
  • 集合的底层是由字典实现的,里面所有的元素都是字典的键对象,因此不能重复且唯一

集合与字典对比照表如下:

Python集合哪些事
集合与字典

集合较于列表和元组,字典性能更优,可以在常数时间复杂度O(1)内完成查找、添加、删除操作。

我们已经把python的数据类型都学了差不多了,整理了一份功能对照表如下:

Python集合哪些事
数据类型

1. 创建集合

1.1 使用花括号创建

集合的典型格式为花括号创建

Set = {value1,value2,....}

如我们定义一个集合 Set ={“JueJing”,30,(1,2)}

Python集合哪些事
image.png
# 定义一个空集合
Set = {}

# 定义集合
Set2 = {"JueJing",30,(1,2)}

Python集合哪些事
元组创建
1.2 使用set()创建

set()函数,将列表、元组等可迭代对象转换成集合。

  • 如果原来数据中存在重复数据,只保留一个
# 定义List

List = ["JueJing",30,30]

Set = set(List)

print(Set)
Python集合哪些事
set()创建

2. 基本方法

2.1 添加元素
  • add()函数

使用add()函数,将新元素添加到集合中。

  • 如果新元素已存在,则不进行操作。
>>> Set = {"JueJing",30}
>>> Set.add("Reading")
>>> Set
{'JueJing', 'Reading', 30}

Python集合哪些事
添加元素

如果添加已经存在的元素,Set的元素不进行任何变化

>>> Set.add("JueJing")
>>> Set
{'JueJing', 'Reading', 30}
>>>
Python集合哪些事
元素重复
  • update()函数

也可以使用update()函数,进行添加新元素

>>> Set = {"JueJing",30}
>>> Set.update(["Reading"])
>>> Set
{'JueJing', 'Reading', 30}
>>>

2.2 移除元素
操作 操作 例子 返回值
移除集合 remove() s.remove(x) 无返回值,会抛异常
移除集合 discard() s.discard(x) 无返回值
随机删除 pop() s.pop() 返回删除对象
清空集合 clear() s.clear() 无返回值
  • remove()函数

remove()函数移除指定的集合元素.

如果元素不存在,则会抛出异常。

>>> Set = {"JueJing",30}
>>> Set.remove(30)
>>> Set
{'JueJing'}
>>> Set.remove("Jue")   # "Jue"这个元素不存在集合里
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'Jue'
>>> 
Python集合哪些事
删除元素
  • discard()函数

discard()函数也是移除指定的元素,但是如果元素不存在,则步会抛出异常。

>>> Set.discard(30)
>>> Set
{'JueJing'}
>>> Set.discard("Jue")  # "Jue"元素不存在,系统没有抛出异常
>>> 

  • pop()函数

pop()函数随机删除集合中的一个元素。

因为,集合的底层是字典,集合也具有无序的特点(没有第一个元素,最后一个元素的概念),使用pop()函数可以一次删除集合的元素。

>>> Set = {"JueJing",30}
>>> Set.pop()
'JueJing'
>>> Set.pop()
30
>>> Set.pop()  #当集合为空时,会抛出异常
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'pop from an empty set'
>>> 

  • clear()函数

clear()函数清空整个集合。

>>> Set = {"JueJing",30}
>>> Set.clear()
>>> Set
set()
>>> 
2.3 计数

使用len()函数来计算集合元素的个数

>>> Set = {"JueJing",30}
>>> len(Set)
2
>>>

3. 其他操作

3.1 判断元素是否存在
key in set
>>> Set = {"JueJing",30}
>>> "JueJing" in Set
True
>>> "Jue" in Set
False
3.2 运算

集合也可以进行交集、并集及差集运算

Python集合哪些事
数学运算
>>> Set = {"JueJing",30}
>>> SetN = {3,"Jue","JueJing"}
>>> Set|SetN
{'JueJing', 3, 'Jue', 30}
>>> Set&SetN
{'JueJing'}
>>> Set-SetN
{30}
>>> Set.union(SetN)
{'JueJing', 3, 'Jue', 30}
>>> Set.intersection(SetN)
{'JueJing'}
>>> Set.difference(SetN)
{30}
>>> 

总结

Python 集合是非常实用的,它能够高效地从列表等数据结构中删除重复的值,并且执行常见的数学运算,例如:求并集、交集。

人们经常遇到的一个挑战是:何时使用各种数据类型,例如什么时候使用集合或字典。

在不同的工作场景中,学习完成后,我们应该就会更加从容的去选择使用数据类型了,让我们代码更加优美。

好啦,以上是本期内容,下次见~

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。