当前位置:首页 > 编程技术 > 正文内容

【说站】python集合的底层实现

yc8882年前 (2022-08-24)编程技术223

python集合的底层实现

1、集合类型的底层实现基于哈希表,键的输出顺序,取决于键在哈希表中的存储顺序。

2、集合中键的数据类型必须是静态数据类型,如简单数据类型、字符串和元组。

集合类型与字典类型相同,是基于哈希表的数据结构。

实例

# -*- coding: utf-8 -*-
"""
@Time    : 2021/8/15 19:20
@Author  : LYP
@FileName: set_python.py
@SoftWare: PyCharm
"""
 
print("创建集合")
a = {1,'c',1,(1,2,3),'c','a','e','e'}
print(a)
 
set1 = set("c.biancheng.net")
set2 = set([1,2,3,4,5])
set3 = set((1,2,3,4,5))
 
print("set1:",set1)
print("set2:",set2)
print("set3:",set3)
 
print("集合之间的常见操作")
set4=set([1,2,3,4,5,6,7,8])
set5=set([6,7,8,9,12,23,45,67])
 
print(set4)
print(set5)
 
print("set4中添加元素10",set4.add(10))
print("set5中添加元素10",set5.add(10))
 
print("set4中删除元素",set4.pop())
# discard() 删除特定元素
print("set5中删除元素",set5.discard(6))
 
print("set4中移除元素10",set4.remove(10))
print("set5中移除元素",set5.remove(10))
 
print("集合常见操作")
print("set4和set5的交集",set4 & set5)
print("set4和set5的并集",set4 | set5)
print("set4和set5的差集",set4 - set5)
print("set4和set5的对称差集",set4 ^ set5)
 
print(" 两个集合的并集",set4.union(set5))
print(" 多个集合的差集",set4.difference(set5))
print(" 集合的交集",set4.intersection(set5))
 
print("判断两个集合是否包含相同的元素,",set4.isdisjoint(set5))
 
print("判断集合是否有某个元素,", 7 in set5)

以上就是python集合的底层实现,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/7841.html

标签: Python
分享给朋友:

“【说站】python集合的底层实现” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...