python dict字典

mapping 对象会将 hashable 值映射到任意对象。 映射属于可变对象。 目前仅有一种标准映射类型 字典。 (关于其他容器对象请参看 list, set 与 tuple 等内置类,以及 collections 模块。)

字典的键 几乎 可以为任何值。 不是 hashable 的值,即包含列表、字典或其他可变类型(按值比较而非按对象标识比较)的值不可被用作键。 比较结果相等的值(如 1, 1.0 和 True 等)可被互换使用以索引同一个字典条目。

文章目录

  • 前言
    • 在 Python 中,dict 是一种数据结构,也称为字典(Dictionary),用于存储键值对(key-value pairs)的集合。字典是一种可变的、无序的、以键为索引的集合,其中每个键必须是唯一的,但值则不必唯一。
  • 一、dict是什么?
  • 二、使用步骤
    • 1.基本操作(增删查改)
  • 创建字典
  • 访问字典元素
  • 修改字典元素
  • 添加字典元素
  • 删除字典元素
  • 判断字典是否为空
  • 遍历字典
  • 2.常用方法
  • 1.clear():清空字典
  • 2.copy():复制字典
  • 3.fromkeys():创建指定键的字典,是一个类方法,参数为序列或迭代器,默认参数是None
  • 4.get():获取指定键的值
  • 5.items():以列表返回可遍历的(键, 值) 元组数组
  • 6.keys():以列表返回字典所有的键
  • 7.values():以列表返回字典所有的值
  • 8.pop():删除指定键的值,并返回该值
  • 9.popitem():随机删除一个键-值对,并返回该键-值对
  • 10.setdefault():设置默认值
  • 11.update():更新字典
  • 12.并集运算符 |
  • 总结


前言

在 Python 中,dict 是一种数据结构,也称为字典(Dictionary),用于存储键值对(key-value pairs)的集合。字典是一种可变的、无序的、以键为索引的集合,其中每个键必须是唯一的,但值则不必唯一。

提示:以下是本篇文章正文内容,下面案例可供参考

一、dict是什么?

在 Python 中,dict 是一种数据结构,也称为字典(Dictionary),用于存储键值对(key-value pairs)的集合。字典是一种可变的、无序的、以键为索引的集合,其中每个键必须是唯一的,但值则不必唯一。

字典的特点包括:

无序性:字典中的键值对没有固定的顺序,不像列表或元组有顺序。
键的唯一性:字典中的键必须是唯一的,如果重复赋值给同一个键,则会覆盖原来的值。
可变性:字典是可变的,可以修改、添加或删除键值对。

二、使用步骤

1.基本操作(增删查改)

代码如下(示例):

创建字典

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
#创建空字典
dict2 = {}
print(dict2)

访问字典元素

print(dict1['name'])  # 输出:Alice

修改字典元素

dict1['age'] = 26
print(dict1['age'])  # 输出:26

添加字典元素

dict1['gender'] = 'female'
print(dict1)  # 输出:{'name': 'Alice', 'age': 26, 'city': 'Beijing', 'gender': 'female'}

删除字典元素

del dict1['city']
print(dict1)  # 输出:{'name': 'Alice', 'age': 26, 'gender': 'female'}、

判断字典是否为空

if not dict1:print('字典为空')  # 输出:字典为空else:print('字典不为空')  # 输出:字典不为空

遍历字典

for key in dict1:print(key, ':', dict1[key])  # 输出:name : Alice、age : 26、gender : female
for k,v in dict1.items():print(k, ':', v)  # 输出:name : Alice、age : 26、gender : female
#dict()使用方法,里面的参数是2元组或者函数的参数
dict3 = dict(name='Bob', age=30, city='Shanghai')
print(dict3)  # 输出:{'name': 'Bob', 'age': 30, 'city': 'Shanghai'}
list1 = [('name', 'Tom'), ('age', 35), ('city', 'Guangzhou')]
dict4 = dict(list1)
print(dict4)  # 输出:{'name': 'Tom', 'age': 35, 'city': 'Guangzhou'}

2.常用方法

字典的常用方法

1.clear():清空字典

python dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} dict1.clear() print(dict1)  # 输出:{}

2.copy():复制字典

dict1= {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = dict1.copy()
print(dict2)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing'}

3.fromkeys():创建指定键的字典,是一个类方法,参数为序列或迭代器,默认参数是None

dict.fromkeys(['name', 'age', 'city'], 'unknown')  # 输出:{'name': 'unknown', 'age': 'unknown', 'city': 'unknown'}
d=dict.fromkeys(range(3))
print("d=",d)#输出:d= {0: None, 1: None, 2: None}

4.get():获取指定键的值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.get('name'))  # 输出:Alice
print(dict1.get('gender', 'unknown'))  # 输出:unknown,不存在返回默认值,没有默认值返回None

5.items():以列表返回可遍历的(键, 值) 元组数组

6.keys():以列表返回字典所有的键

7.values():以列表返回字典所有的值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} 
print(dict1.items())  # 输出:dict_items([('name', 'Alice'), ('age', 25), ('city', 'Beijing')])
print(dict1.keys())  # 输出:dict_keys(['name', 'age', 'city'])
print(dict1.values())  # 输出:dict_values(['Alice', 25, 'Beijing'])

8.pop():删除指定键的值,并返回该值


```python
dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'} print(dict1.pop('name'))  # 输出:Alice print(dict1)  # 输出:{'age': 25, 'city': 'Beijing'}

9.popitem():随机删除一个键-值对,并返回该键-值对

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.popitem())  # 输出:('city', 'Beijing')
print(dict1)  # 输出:{'name': 'Alice', 'age': 25}

10.setdefault():设置默认值

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
print(dict1.setdefault('gender', 'unknown'))  # 输出:unknown
print(dict1)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gend`er': 'unknown'}`

11.update():更新字典

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = {'gender': 'female'}
dict1.update(dict2)
print(dict1)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gender': 'female'}

12.并集运算符 |

dict1 = {'name': 'Alice', 'age': 25, 'city': 'Beijing'}
dict2 = {'gender': 'female'}
dict3 = dict1 | dict2
print(dict3)  # 输出:{'name': 'Alice', 'age': 25, 'city': 'Beijing', 'gender': 'female'}

总结

字典的键必须是不可变对象,如字符串、数字、元组等,而值则可以是任意对象。
字典是一种可变容器,可以随时添加、删除或修改元素。
字典的键是通过哈希算法计算出来的,所以字典的查找速度非常快。
字典是一种映射类型,它的元素是键-值对。
字典的创建格式是{key1:value1, key2:value2,…, keyn:valuen}。
字典的键必须是不可变对象,而值可以是任意对象。
字典的键必须是唯一的,不能重复。
字典的键不能改变,但可以重新赋值。

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

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

相关文章

2024.05.14 校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招 | 中核集团2025届校园招聘提前批正式启动! 校招 | 中核集团2025届校园招聘提前批正式启动! 2、实习 | 岚图汽车校园实习生招聘 实习 | 岚图汽车校园实习生…

达梦 结果拼接=多行结果返回一列字符串.

sql 转换 查询出多行数据 (select t.PROPERTY from JD_CODING t left join DELIVERY_OF c on t.VALUE c.TYPE where t.PROPERTY stackingType group by t.PROPERTY) 更改后 转为一列的拼接字符串 ( select listagg( distinct t.PROPERTY,,) within group ( order by t.P…

MiniPCIe/SATA双用插槽无法识别minipcie模块怎么回事!

在计算机和嵌入式系统设计中,MiniPCIe/SATA双用插槽作为一种高度集成的解决方案,提供了极大的灵活性与扩展能力。它不仅能够支持MiniPCIe接口的无线网卡、固态硬盘控制器等模块,还能适应SATA接口的硬盘或固态存储设备,大大丰富了系统配置的可能性。尽管设计初衷良好,但在实…

bert模型用于二分类问题微调

使用bert-base-chinese预训练模型对二分类问题进行微调 import pandas as pd from transformers import BertTokenizerFast, AutoModelForSequenceClassification, Trainer, TrainingArguments import torchmodel_name "./bert-base-chinese" path "./abuse_…

STP19NF20 丝印 19NF20 场效应管19A 200V 直插 TO-220

STP19NF20 功率MOSFET的应用领域相当广泛,主要包括: 1. 电源管理:用于高效率电源管理电路,如直流-直流转换器和交流-直流电源适配器。 2. 开关模式电源(SMPS):在需要高效能和紧凑型尺寸的开关…

Ceph相关命令

关于osd自动重启 /etc/crontab里面每隔2分钟会调用 /etc/cron.daily/keep_osd.sh关闭osd 1 mv /etc/cron.daily/keep_osd.sh /etc/cron.daily/keep_osd.sh_back 2 systemctl stop ceph-osd0.service查看osd的参数 ceph daemon osd.0 config show |grep osd_op_num动态修改…

【学习】软件测试小伙伴,这几点助你提升软件测试水平

在数字化时代,软件已经无处不在,影响着我们的日常生活、工作乃至整个社会的运行。在这个背景下,软件测试成为确保产品质量的关键环节,关乎用户体验和社会信任。本文将为您梳理一些关于软件测试你必须了解的知识点,并阐…

JAVAEE之多线程进阶(2)_ CAS概念、实现原理、ABA问题及解决方案

前言 在并发编程时,常常会出现线程安全问题,那么如何保证原子性呢?常用的方法就是加锁。在Java语言中可以使用 Synchronized和CAS实现加锁效果。  Synchronized关键字保证同步的,这会导致有锁,但是锁机制存在以下问题…

判断GIF类型并使用ImageDecoder解析GIF图

一、判断是否为GIF图片类型 在JavaScript中,判断用户上传的文件是否为GIF文件类型时,通常可以通过检查文件的type属性或文件的拓展名来判断,但是由于文件拓展名可以轻易被用户修改,type属性是由浏览器根据文件拓展名猜测得出的&a…

douyin-vue:使用Vue3、Pinia和Vite5打造高度还原的抖音仿制项目

一:引言 在前端技术日新月异的今天,Vue.js作为一款流行的前端框架,不断吸引着开发者的目光。最近,GitHub上出现了一个备受瞩目的项目——douyin-vue,这是一个基于Vue3、Pinia和Vite5的移动端短视频项目,旨…

[解决]windows mysql8.0.x误删除root,解决办法

1. 停止mysql服务 2. 以管理员身份打开命令窗口,进入到mysql安装位置的bin目录下 3. 输入 mysqld --console --skip-grant-tables --shared-memory 注意:a. 很多解决办法是输入mysqld --skip-grant-tables,这在mysql8.0之后的版本已经不在…

ASPICE标准:汽车软件与嵌入式系统开发的黄金准则-亚远景

在高度信息化的现代社会,汽车行业的发展已远超过传统的机械和动力系统,汽车电子和软件系统的重要性日益凸显。为了确保汽车软件的质量和可靠性,汽车行业需要一套统一且高效的开发标准。ASPICE(Automotive SPICE)标准应…

通过ESP32芯片模组实现产品智能化升级,启明云端乐鑫代理商

随着科技的不断进步,物联网(IoT)已经渗透到我们生活的方方面面,成为现代生活不可或缺的一部分。在这场智能化革命中,乐鑫科技以其创新的ESP32芯片模组,为智能家居和智能设备的发展注入了新的活力。作为乐鑫…

msi安装mysql8 启动失败,提示只有在任务处于完成状态(RanToCompletion、Faulted 或 Canceled)时才能释放它。

解决方案: 1.打开服务,找到安装的mysql 2. 右击,打开属性,进入【登录】选项卡,选择本地系统账户。 3. 点击确定-->应用 4.服务中选择开始服务 5.服务启动成功后,在安装步骤中继续点击执行

Post Microsoft Build and AI Day 上海开发者日

点击蓝字 关注我们 编辑:Alan Wang 排版:Rani Sun 这个六一怎么过?来微软 Reactor,一起过儿童节吧! 6月1日,Microsoft Azure & Microsoft Reactor 面向大小朋友特别推出六一特辑,「Post Mic…

开源进销存系统

推荐一款开源的进销存系统 项目地址:进销存系统 仓库管理系统 SAAS进销存 进销存ERP: 进销存系统 仓库管理系统 SAAS进销存 进销存ERPhttps://gitee.com/flyemu/jxc.git 主要功能模块 销售 采购 库存 资料 设置 支持saas多租户,100%开源可二开 …

前端项目上线要准备哪些问题?

上线前 一般开发过程中,会准备好几条线路,一个是测试环境,一个是正式环境;如果是公司比较大,在此外还会增加一个环境-预上线。 预上线,就是所有的设备,环境,条件和正式线的环境都是一…

iPhone用户推荐使用的藏汉翻译小助手:藏汉翻译通小程序,支持藏文OCR识别文字提取,卫藏语、安多语、康巴语学习背单词!

网上冲浪时,遇到不会的汉语词汇,可以复制到藏汉翻译通小程序中进行翻译。如果不会拼音,可以使用图片识别功能扫一扫文字,即可OCR识别提取文字。 此外,藏汉翻译通小程序现在还支持背单词和会话速成课程,支持…

C# BurnServiceContractClient 使用方法

目录 1. 添加服务引用 2. 使用客户端进行操作 3. 配置文件(App.config) 4. 异步调用 总结 要在C#中使用BurnServiceContractClient,首先需要了解该客户端的使用场景和目标服务契约。假设BurnServiceContractClient是一个WCF(W…

混元助手 mysql建表语句转换oracle

提示语 mysql建表语句转换成oracle,并且有common SQL语句的生成: create ....