Python基本数据类型之散列类型详解

前言:

python的基本数据类型可以分为三类:数值类型、序列类型、散列类型,本文主要介绍散列类型。

一、散列类型

散列类型:内部元素无序,不能通过下标取值

1)字典(dict):用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对会替换前面的,value不需要唯一。

2)集合(set):用 {} 花括号表示,存放一个个元素,可以是任意类型,但元素不允许重复。

注意:

d = {} 定义的是一个空字典

s = set() 定义的是一个空集合

二、字典dict

1.定义

1)用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对会替换前面的,value不需要唯一。

2)value可以取任何数据类型,但key是不可变的,新增键值对后,key不可以修改,单value可以修改。

2.字典的常用方法
1)增

dic[key]=value 无则创建,若已有对应的key存在则修改该键值对的value
update():将一个字典的所有元素更新到另一个字典中 (简单来说,就是添加多个元素)
routeros

# 字典 {key:value, key:value}   键/值对形式
# key是唯一的,是不可变类型数据
dic1 = {'name':'张三','age':18,'gender':'男'}
dic2 = {'a':11,'b':22}dic1['city'] = '广州'   # 新增键值对
print(dic1)dic1['city'] = '上海'   # 根据key修改值
print(dic1)# updata():添加多个键值对(将一个字典更新到一个字典中)
dic1.update(dic2)
print(dic1)
dic2.update({'c': 33, 'd': 44})
print(dic2)

2)删

pop():参数为字典的键(key)
popitem() :删除最后添加的键值对
clear():清空字典中的所有键值对
关腱字del:del dic[key]

routeros

dic1 = {'name':'张三','age':18,'gender':'男','city':'广州'}# pop():删除,需要传入一个键(key)
dic1.pop('gender')
print(dic1)# popitem():不需要传参,删除字典中最后添加进来的一个键值对
dic1.popitem()
print(dic1)# 关键字del
del dic1['age']
print(dic1)# clear():清除字典中的所有键值对
dic1.clear()
print(dic1)

运行结果:

awk

C:\software\python\python.exe D:/myworkspace/test/test/test.py
{'name': '张三', 'age': 18, 'city': '广州'}
{'name': '张三', 'age': 18}
{'name': '张三'}
{}Process finished with exit code 0

3)改

dic[key]=value 通过键去修改值,在第一点中已经举出例子

4)查

get():获取键对应的值,但key不存在时不会报惜,会打印None
keys():获取所有的键,可以用list将结果转成列表
values():获取所有的值,可以用list将结果转换成列表
itmes(): 获取所有的键值对,可以用list将结果转换成列表,列表中每个键值对组成一个元组

routeros

dic1 = {'name':'张三','age':18,'gender':'男'}# get():获取键对应的值
print(dic1.get('name'))
print('这是不存在的键值对:{}'.format(dic1.get('city')))# keys():返回字典中所有的键
print(dic1.keys())dic_key = dic1.keys()
print(list(dic_key))  # 通过list()把键以列表的形式输出# values():返回字典中所有的值
print(dic1.values())
dic_value = dic1.keys()
print(list(dic_value))  # 通过list()把键以列表的形式输出# items:返回字典中所有的键值对,每一个键值对都会打包成元组(key,value)
print(dic1.items())
dic_item = dic1.items()
print(list(dic_item))

运行结果:

stylus

C:\software\python\python.exe D:/myworkspace/test/test/test.py
张三
这是不存在的键值对:None
dict_keys(['name', 'age', 'gender'])
['name', 'age', 'gender']
dict_values(['张三', 18, '男'])
['name', 'age', 'gender']
dict_items([('name', '张三'), ('age', 18), ('gender', '男')])
[('name', '张三'), ('age', 18), ('gender', '男')]Process finished with exit code 0

三、集合set

1.定义

集合是由不重复元素组成的无序的集,常用来消除重复元素

注意:要创建一个空集合只能用set(),不能用用{},因为后者创建的是一个空字典

2.集合的常用方法

集合的方法比较简单,常用增加元素add,删除元素pop()、remove()

routeros

set1 = {1, 'python', 'a', 2, 'a', 3, 4, 'python', 5, 6}
print(set1)  # 去掉重复的元素li = [79, 1, 89, 3, 90, 5, 89, 321, 66, 7]
li = list(set(li))  # 利用set()转换成集合去重
print(li)dic = {}  # 表示空字典, 空集合用set()
set1 = set()
print(type(dic), type(set1))    # type()是python内置函数,用于查看数据类型set1.add(1)
set1.add(2)
print(set1)
set1.pop()
print(set1)
set1.remove(2)
print(set1)

运行结果:

awk

C:\software\python\python.exe D:/myworkspace/test/test/test.py
{1, 2, 3, 4, 5, 6, 'python', 'a'}
[1, 321, 3, 66, 5, 7, 79, 89, 90]
<class 'dict'> <class 'set'>
{1, 2}
{2}
set()Process finished with exit code 0

一、散列类型
二、字典dict
1.定义
2.字典的常用方法
1)增
2)删
3)改
4)查
三、集合set
1.定义
2.集合的常用方法

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/525221.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

训练验证码之ddddocr一个图文视频教学

目录 一、推荐文章视频一、ddddocr环境配置二、字符集验证码训练三、ocr_api_server服务搭建 一、推荐文章视频 文章原文来自这里&#xff1a;训练验证码-4、ddddocr训练字符验证码 &#xff0c; 原文文章末尾有视频介绍更多内容见训练验证码合集 一、ddddocr环境配置 1.打开…

守护Web安全:了解Web攻击与防护策略

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【C++进阶】哈希的应用 --- 布隆过滤器

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

macOS上实现「灵动岛」效果

自从Apple iPhone推出了「灵动岛」功能后&#xff0c;用户们就被其优雅的设计和强大的功能所吸引。然而&#xff0c;作为macOS用户&#xff0c;我们一直在等待这一功能能够在我们的设备上实现。现在&#xff0c;随着新的应用程序的推出&#xff0c;我们终于可以在我们的Mac上体…

300分钟吃透分布式缓存-25讲:Redis是如何处理容易超时的系统调用的?

BIO 线程简介 Redis 在运行过程中&#xff0c;不可避免的会产生一些运行慢的、容易引发阻塞的任务&#xff0c;如将内核中的文件缓冲同步到磁盘中、关闭文件&#xff0c;都会引发短时阻塞&#xff0c;还有一些大 key&#xff0c;如一些元素数高达万级或更多的聚合类元素&#…

C++篇 语 句

到目前为止&#xff0c;我们只见过两种语句&#xff1a; return 语句和表达式语句。根据语句对执行顺 序的影响&#xff0c;C 语言其余语句大多属于以下 3 大类。 选择语句&#xff1a; if 语句和 switch 语句。循环语句&#xff1a; while 语句&#xff0c; do...while 语句和…

部署LVS+Keepalived高可用群集(抢占模式,非抢占模式,延迟模式)

目录 一、LVSKeepalived高可用群集 1、实验环境 2、 主和备keepalived的配置 2.1 yum安装ipvsadm和keepalived工具 2.2 添加ip_vs模块并开启ipvsadm 2.3 修改keepalived的配置文件 2.4 调整proc响应参数&#xff0c;关闭linux内核的重定向参数响应 2.5 将主服务器的kee…

山泉还可以申请商标不,现阶段通过率如何!

在32类类别啤酒饮料是许多生产水企业主要申请注册的类别&#xff0c;那现在山泉在这个类别还可以申请注册商标不&#xff0c;山泉在这个类别基本上是通用词&#xff0c;首先是需要前面词具有显著性&#xff0c;没的相同或近似才可以。 经普推知产老杨检索发现&#xff0c;在32…

Redis作为缓存的数据一致性问题

背景 使用Reids作为缓存的原因&#xff1a; 在高并发场景下&#xff0c;传统关系型数据库的并发能力相对比较薄弱&#xff08;QPS不能太大&#xff09;&#xff1b; 使用Redis做一个缓存。让用户请求先打到Redis上而不是直接打到数据库上。 但是如果出现数据更新操作&#xff…

springboot256基于springboot+vue的游戏交易系统

游戏交易系统设计与实现 摘 要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff0c;对游戏交…

Vue快速开发一个主页

前言 这里讲述我们如何快速利用Vue脚手架快速搭建一个主页。 页面布局 el-container / el-header / el-aside / el-main&#xff1a;https://element.eleme.cn/#/zh-CN/component/container <el-container><el-header style"background-color: #4c535a"…

使用GitOps自动化推动AI/ML工作流程

作为一名深耕自动化和人工智能领域的开发人员&#xff0c;我们逐渐认识到尖端工具和方法之间的显着协同作用&#xff0c;这些协同作用突破了可能性的界限。在这次探索中&#xff0c;我们想分享一个概念&#xff0c;它不仅彻底改变了我们的软件开发和基础设施管理方法&#xff0…