Python基础数据类型之set集合

简介: Python基础数据类型之set集合

一、set数据类型介绍

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

二、set集合演示

#  set集合-数据类型
m = {
   }
print(type(m))  # {}内为空时数据类型为字典
s = {
   1,2,3,3,4,"张三"}
print(s)
print(type(s))    # set集合的元素是无序的打印出来
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
<class 'dict'>
{
   1, 2, 3, 4, '张三'}
<class 'set'>

Process finished with exit code 0

三、set集合中hash介绍

1.哈希定义

Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。

2.数据类型的hash和不可hash

①不可哈希:python中的set集合进行数据存储的时候,需要对这些数据进行哈希计算,根据计算出的哈希值进行存储。
②可哈希的:不可变的数据类型,int, str , tuple, bool,
③不可哈希的:可变得数据类型,list,dict, set

3.set中hash示例

s = {
   1,2,3,3,4,"张三", []}
# print(s)
# print(type(s))
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
Traceback (most recent call last):
  File "D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py", line 17, in <module>
    s = {
   1,2,3,3,4,"张三", []}
TypeError: unhashable type: 'list'

Process finished with exit code 1

四、set集合的插入

1.创建空集合

# s = set() # 创建空集合
# l = list()
# t = tuple()
# s = str()

2.set集合插入

s.add("张辽")
s.add("许诸")
s.add("赵云")
s.add("陆逊")
print(s)
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
{
   '陆逊', '张辽', '赵云', '许诸'}

Process finished with exit code 0

五、set集合的删除

s.add("张辽")
s.add("许诸")
s.add("赵云")
s.add("陆逊")
print(s)

s.remove("张辽")
print(s)
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
{
   '赵云', '陆逊', '张辽', '许诸'}
{
   '赵云', '陆逊', '许诸'}

Process finished with exit code 0

六、set集合的修改

s.add("张辽")
s.add("许诸")
s.add("赵云")
s.add("陆逊")
print(s)

# s.remove("张辽")
# print(s)

# 想要修改,先删除,在新增
s.remove("张辽")
s.add("孙尚香")
print(s)
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
{
   '赵云', '陆逊', '许诸', '张辽'}
{
   '赵云', '陆逊', '孙尚香', '许诸'}

Process finished with exit code 0

七、set的查询


s.add("张辽")
s.add("许诸")
s.add("赵云")
s.add("陆逊")
print(s)



for item in s:
    print(item)
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
{
   '张辽', '陆逊', '赵云', '许诸'}
张辽
陆逊
赵云
许诸

Process finished with exit code 0

八、交集、并集、差集

```bash# 交集、并集、差集
s1 = {"python", "shell", "ansible","ruby"}
s2 = {"zabbix", "linux", "shell", "nginx"}

print(s1 & s2) #交集
print(s1.intersection(s2))
print(s1 | s2) # 并集
print(s1.union(s2))

print(s1 - s2) # 差集
print(s1.difference(s2))


```bash
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
{'shell'}
{'shell'}
{'nginx', 'linux', 'python', 'zabbix', 'shell', 'ruby', 'ansible'}
{'nginx', 'linux', 'python', 'zabbix', 'shell', 'ruby', 'ansible'}
{'ruby', 'python', 'ansible'}
{'ruby', 'python', 'ansible'}

Process finished with exit code 0

九、set的去重作用

s1 = {
   "python", "shell", "ansible","ruby"}
s2 = {
   }
l = ["zabbix", "linux", "shell", "nginx""zabbix", "linux", "shell",
     "nginx""zabbix", "linux", "shell", "nginx"]
print(l)
print(list(set(l))) # 去除重复,去重后的元素是无序的
D:\soft\python\python.exe D:/soft/pycharm/pycharmfile/py基础/02_python基础类型/13_set.py
['zabbix', 'linux', 'shell', 'nginxzabbix', 'linux', 'shell', 'nginxzabbix', 'linux', 'shell', 'nginx']
['nginx', 'shell', 'nginxzabbix', 'zabbix', 'linux']

Process finished with exit code 0
相关文章
|
1月前
|
测试技术 索引 Python
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(一)
本文提供了Python接口自动化测试中的编程练习,包括计算器、猜数字、猜拳和九九乘法表等经典问题,涵盖了数据类型、运算、循环、条件控制等基础知识的综合应用。
31 1
|
1天前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
1天前
|
Python
python推导式-列表,元组,字典,集合推导式
这篇文章介绍了Python中的推导式,包括列表推导式、元组推导式、字典推导式和集合推导式,提供了它们的基本格式和示例代码,并解释了推导式如何简化循环和条件判断的代码编写。
|
25天前
|
存储 数据挖掘 程序员
揭秘Python:掌握这些基本语法和数据类型,你将拥有编程世界的钥匙!
【9月更文挑战第3天】Python 是一种简洁强大的高级编程语言,其清晰的语法和丰富的功能深受程序员喜爱。本文从基本语法入手,介绍 Python 的代码结构特点,如通过缩进区分代码块,使逻辑更清晰。接着详细讲解主要数据类型:数值型、字符串、列表、元组、集合与字典,每个类型均附有示例代码,帮助初学者快速掌握 Python,为后续学习打下坚实基础。
27 2
|
1月前
|
数据采集 编解码 算法
Github | 推荐一个Python脚本集合项目
Github | 推荐一个Python脚本集合项目
|
30天前
|
索引 Python
Python 中常见的内置数据类型
【8月更文挑战第29天】
21 3
|
30天前
|
索引 Python 容器
为什么Python中会有集合set类型?
为什么Python中会有集合set类型?
|
1月前
|
Python
python中set和frozenset方法和区别
python中set和frozenset方法和区别
|
1月前
|
存储 测试技术 数据格式
Python接口自动化测试框架(练习篇)-- 数据类型及控制流程(二)
本文通过数据类型转换和文件读取的练习,复习了Python中的数据类型、循环、条件判断、内置函数等基础知识,并演示了如何将字符串数据转换为字典列表,以及如何从文本文件中读取和转换数据。
32 1
|
1月前
|
测试技术 Python 容器
Python接口自动化测试框架(基础篇)-- 常用数据类型dict
这篇文章详细介绍了Python中字典(dict)数据类型的使用,包括字典的创建、取值、增删改操作以及内置函数的应用,并探讨了字典的扩展特性,如键的唯一性和不可变性。
13 0
Python接口自动化测试框架(基础篇)-- 常用数据类型dict