python14 字典类型

字典类型 键值对方式,可变数据类型,所以有增删改功能
声明方式1 {} 大括号,示例 d = {key1 : value1, key2 : value2, key3 : value3 ....}
声明方式2 使用内置函数 dict() 创建
    1)通过映射函数创建字典
        zip(list1,list2)
继承了序列的所有操作
与列表不同的是元素是无序的
KEY不能重复,Value可以重复
import  random
'''
字典类型 键值对方式,可变数据类型,所以有增删改功能
声明方式1 {} 大括号,示例 d = {key1 : value1, key2 : value2, key3 : value3 ....}
声明方式2 使用内置函数 dict() 创建
    1)通过映射函数创建字典
        zip(list1,list2)
继承了序列的所有操作
与列表不同的是元素是无序的
KEY不能重复,Value可以重复

'''
# 声明方式1 字典类型
dataDict = {10 : 'cat' , 20 : 'dog', 30 : 'pet', 20 : 'zoo'}
# key 相同时,value值进行覆盖操作
print(dataDict)

# 声明方式2 zip函数
list1 = [10,20,30,40]
list2 = ['cat','dog','pet','zoo','car']
zipobj = zip(list1, list2)
print(zipobj)
# 强转数据类型为字典
d = dict(zipobj)
print(d)

# 声明方式3 使用参数创建
dataDict1 = dict(cat = 10, dog = 20)
print(dataDict1)

# 元组做为KEY
t = (10,20,30)
print(f'元组做为KEY = {t,'val'}')

# 取值
userDict = {'name' : 'stevenChen', 'age' : 30, 'sex' : '男'}
# 取值1
print(f'取值1 :{userDict['name']}')
# 取值2
print(f'取值2 :{userDict.get('name')}')
# 以上两者的取值区别: 如果KEY不存在,userDict[key] 报错, get(key) 可以指定默认值
# 取值3
print(f'取值3 :{userDict.get('name_1')}')

# 遍历
for item in userDict.items():
    print(f'for item ->{item}')# key = value 组成的一个元素
# 分别获取key 和 value
for key,value in userDict.items():
    print(f'for key,value key={key},value={value}')
# 遍历 keys ,再根据KEY获取VALUE
for key in userDict.keys():
    print(f'for key => {key}, value->{userDict[key]}')

# 相关操作方法
# 添加元素
userDict['No'] = 5018
print(f'添加数据:{userDict}')

# 获取所有的key
keys = userDict.keys()
print(f'获取所有的key : {keys}')
# 转成列表查看
print(f'获取所有的转成列表查看keyList : {list(keys)}')
# 转成元组查看
print(f'获取所有的转成元组查看keyList : {tuple(keys)}')

# 获取所有的value值
values = userDict.values()
print(f'获取所有的values : {values}')
# 转成列表查看
print(f'获取所有的转成列表查看valueList : {list(values)}')
# 转成元组查看
print(f'获取所有的转成元组查看valueList : {tuple(values)}')

# 删除元素
userDict.pop('No')
print(f'删除元素:{userDict}')
# 删除不存的元素
print(f'删除元素带默认值:{userDict.pop('No','不存在')}')

# 随机删除
print(f'随机删除:{userDict.popitem()}')
print(f'随机删除后:{userDict}')

# 清除所有元素
userDict.clear()
print(f'清除所有:{userDict}')

# python中一切皆是对象,每个对象都有一个布尔值
print(f'布尔值:{bool(userDict)}') #空字典,字列表 的布尔值为False

# 字典生成式
'''
d = {key : value for item in range}
d = {key : value for key,value in zip(list1 , list2)}
'''
print('字典生成式')
d = {item : random.randint(1, 100) for item in range(4)}
print(d)

# 创建两个列表
list10 = [1001,1002,1003]
list11 = ['张三','李四','王五']
d2 = {key : value for key,value in zip(list10, list11)}
print(d2)

END

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字人源码部署怎么做?如何高效搭建好用的数字人系统?

作为人工智能时代的风口项目,AI数字人自出现之日起便引发了大量的关注。不少创业者都有了搭建数字人系统的想法,但却苦于没有强大的专业背景和雄厚资金支撑,只能在局外徘徊,而这恰恰为数字人源码公司推出的数字人源码部署服务的火…

第28讲:Ceph集群使用RBD块存储与K8S Volumes集成

文章目录 1.Ceph集群使用RBD块存储与K8S集成简介2.Ceph集群RBD块存储与K8S Volume集成2.1.在Ceph集群中创建K8S集群使用的块存储2.2.创建用于K8S访问Ceph RBD块设备的认证用户2.3.将认证用户的Key存储在K8S Secret资源中2.4.在K8S集群的所有节点中安装Ceph命令2.5.创建Pod资源使…

基于粒子群优化算法的的微电网多目标优化调度----算法改进

前言: 当阅读过前一篇我的博客之后,并且认真去读懂了那篇文章末尾的代码,那么,后续的算法改进对于你来说应当是很容易的了。前文中提及过,粒子群在进行迭代时,每迭代一次,都会根据自己个体最优值…

JAVA小知识22:迭代器iterator与列表迭代器ListIterator

一、迭代器 在 Java 中,迭代器是一个设计模式,用于遍历集合中的元素。Java 提供了 Iterator 接口来实现这一功能。迭代器的主要作用是提供一种通用的遍历集合的方法,而不需要了解集合的具体实现细节。 1.1、迭代器的特点 统一接口&#xf…

MySQL中实现行列转换的示例

在 MySQL 中进行行列转换(即,将某些列转换为行或将某些行转换为列)通常涉及使用条件逻辑和聚合函数。虽然 MySQL 没有像 Oracle/SQL Server 中的 PIVOT 和 UNPIVOT 那样的直接功能,但你可以通过结合 CASE 语句、UNION 或 UNION AL…

Linux下Shell脚本基础知识

主要参考视频: 这可能是B站讲的最好的Linux Shell脚本教程,3h打通Linux-shell全套教程,从入门到精通完整版_哔哩哔哩_bilibili 主要参考文档: Shell 教程 | 菜鸟教程 (runoob.com) Bash Shell教程 (yiibai.com) 先用视频入门&…

银行数仓项目实战(一)--什么是数据仓库

文章目录 数据仓库特点目的:监管报送监管报送的系统主要有?监管报送报送的数据 OLTP和OLAP 架构 数据仓库 数据仓库是一个面向主题的,集成的,非易失的且随时间变化的数据集合,用来支持管理人员的决策。 数据仓库是一个…

采集罗克韦尔AB、西门子等PLC数据发布成HTTP接口

智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC的原厂协议转换为HTTP协议的服务端,通过网关的参数配置软件绑定JSON文件的字段与PLC寄存器地址,即可接收来自客户端的GET、PUT和POST命令,解析和打包JSON文件(JSON文件格…

两个链表合并升序-链表题

21. 合并两个有序链表 - 力扣(LeetCode) 非递归 class Solution { public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if(list1 nullptr && list2 ! nullptr)return list2;if(list2 nullptr && list1 ! nullptr)re…

电子传真怎么在国产系统上使用?一文看懂网络传真信创方案

国产化浪潮正在逐步深入,越来越多的企业开始关注如何在国产系统上高效、安全地使用办公软件,电子传真系统也不例外。 作为网络电子传真领域的重要品牌,EastFax也对原Windows电子传真系统进行了信创改造,全面支持国产化操作系统、…

取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析

天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。 SysTools SQL Log Analyzer 是 Systools 取证工具系列之一,用于调查 SQL Server 事务日志,以对数据库篡改进行取证分析。 什么是 SQL Server 事务日志? 在深入研究 SQL 事务日…

【工作】计算机行业相关的十六类工作简介

本文简单介绍了计算机行业相关的工作类别,共16种,包括常见招聘要求与平均工资。平均工资信息来源:米国企业点评职场社区glassdoor(https://www.glassdoor.com/index.htm) (一)软件工程师 软件…

【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术

🔥 个人主页:空白诗 文章目录 引言一、图数据及其应用场景1.1 图数据的定义和特征1.2 常见的图数据结构1.2.1 社交网络1.2.2 知识图谱1.2.3 分子结构1.2.4 交通网络 1.3 图数据在不同领域的应用实例1.3.1 社交网络中的推荐系统1.3.2 知识图谱中的信息检索…

流量卡怎么办理的攻略

一、确定需求 在办理流量卡之前,你需要明确自己的需求。根据不同的使用场景,你可能需要考虑以下几个方面: 月租费用:不同运营商提供的流量卡套餐价格各异,从低至19元到高达199元不等。 流量大小:从30GB到3…

ChromeDriver新手教程:一步步指导Chrome 114到127版本的驱动安装

114之前版本下载链接在这里 ​​​​​​125以后版本下载链接在此,只有后面status是绿色对勾的才可以下载,驱动大版本一致就可以使用,不需版本号一模一样;下载所需版本只需点击对应的版本名称即可跳转到对应版本的下载位置。 以…

同三维T80004JEH2-4K60 双路4K60 HDMI解码器

输出:2路HDMI2路3.5音频,最高支持1路4K60HDMI输出 可以同源/独立分屏输出两种模式可选:对应两个HDMI输出一样和不一样的信号 同源可以解码36路网络流(1/4/9/16/25/36),两个HDMI输出一样的信号&#xff…

《骑行健身:“柳叶刀”研究揭示的健康与经济双赢策略》

在这个物价飞涨、经济压力日益加重的时代,普通人如何在不增加额外负担的情况下提升生活质量?《柳叶刀》的最新研究为我们揭开了一个意想不到的秘密:坚持健身,尤其是骑行,竟等同于每年为自己赚取了一笔不小的财富。这一…

表格识别工具哪个好?简单操作,一键识别表格

随着2024年高考的圆满结束,考生们迎来了新的挑战——志愿填报。这不仅是一个技术活,更是一个信息战。 面对海量的高校信息和复杂的数据表格,考生们需要一种快速、准确的方法来整理和分析这些数据。幸运的是,现代科技提供了多种表…

【初阶数据结构】深入解析单链表:探索底层逻辑(无头单向非循环链表)

🔥引言 本篇将深入解析单链表:探索底层逻辑,理解底层是如何实现并了解该接口实现的优缺点,以便于我们在编写程序灵活地使用该数据结构。 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 &…

【软件测试入门】软件测试那些事

在日常生活中,我们早已习惯于各类软件带来的便捷与效率,从手机里的应用程序到电脑上的办公软件,它们无声地编织着现代社会的运作网络。然而,每一款流畅运行、体验优良的软件背后,都离不开一个关键环节——软件测试。《…