【Python】普通字典的定义和使用方式

稳定性性能系列之十五——系统稳定性监控体系建设:从指标到预警的完整方案 深入探讨Android系统稳定性监控体系的设计与实现,涵盖指标体系设计、数据采集方案、异常检测算法、预警响应机制,并提供完整的监控平台搭建实践。 阅读详情

相关链接:【Python】顺序字典(OrderedDict)的定义和使用方式
相关链接:【Python】items()方法的介绍和使用方式
相关链接:【Python】get()方法的介绍和使用方式

在 Python 中,普通字典(通常简称为字典)是一种内置的数据类型,用于存储键值对。字典的键必须是不可变类型(如字符串、数字或元组),而值可以是任意的数据类型。字典是无序的(Python 3.6 以前),但从 Python 3.7 起,字典维护了插入顺序。这使得字典不仅是一种非常灵活的数据结构,还能够在某些应用场景下替代 OrderedDict。

定义普通字典的几种方式:

1. 直接使用花括号 {}
# 空字典
empty_dict = {}

# 带有键值对的字典
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}
2. 使用字典推导式

这是一种通过迭代表达式来创建字典的方式,类似于列表推导式。

# 基于一组键和一些操作来创建字典
squares = {x: x*x for x in range(6)}
print(squares)  # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
3. 使用构造函数 dict()

可以使用多种方式通过 dict() 构造函数来创建字典:

# 使用关键字参数
person = dict(name='Alice', age=25, city='New York')
print(person)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

# 使用键值对序列
pairs = [('name', 'Bob'), ('age', 30), ('city', 'Paris')]
person = dict(pairs)
print(person)  # 输出: {'name': 'Bob', 'age': 30, 'city': 'Paris'}

# 使用两个并行的序列
keys = ['name', 'age', 'city']
values = ['Carol', 22, 'London']
person = dict(zip(keys, values))
print(person)  # 输出: {'name': 'Carol', 'age': 22, 'city': 'London'}

访问和操作字典

字典的操作非常直接,包括访问、修改、添加和删除元素:

# 访问
print(person['name'])  # 输出: Carol

# 修改
person['age'] = 23

# 添加新键值对
person['profession'] = 'Designer'

# 删除键值对
del person['city']
print(person)  # 输出: {'name': 'Carol', 'age': 23, 'profession': 'Designer'}

字典方法

Python 字典提供了丰富的方法,如 .keys(), .values(), .items(), .get(), .setdefault(), .update() 等,用于更复杂的字典操作。

总结

Python 字典是一种极其有用和灵活的数据结构,适用于需要键值映射的多种应用场景。自 Python 3.7 起,字典维护键的插入顺序,这增加了它的用途,使其在很多情况下能够取代 OrderedDict。对于绝大多数日常编程任务来说,普通字典已经足够使用。

yocto系列讲解[实战篇]54 - 添加Qt5和生成带Qt5的SDK 为了满足读者盆友想看yocto如何添加qt5的需求,今天就开始尝试添加meta-qt5 阅读详情

相关推荐

RH850_U2A系列HSM安全核开启但是固件未烧录导致无法启动也无法再烧入固件废板问题分析解决

hsm核导致的安全锁死补救方案

u011941262的博客 1734

「Python系列」Python字典

Python 是一种高级的、动态类型的编程语言,它的设计哲学强调代码的可读性和简洁性。Python 最初由荷兰国家数学与计算机科学研究中心的吉多·范罗苏姆于1989年发明,作为一种叫做 ABC 语言的替代品。Python 的名字来源于一个叫做Monty Python的喜剧团体的爱好者。Python 是一种解释型语言,这意味着在开发过程中没有编译这个环节。Python 的语法简洁清晰,强制使用空白符作为语句缩进,这有助于提高代码的可读性。Python 还支持面向对象编程,能够轻松地定义和使用类和对象。

m0_59236602的博客 1561

手把手教你用Wireshark抓包分析BLE广播包:从PDU结构到AD Type实战解析

本文详细介绍了如何使用Wireshark工具抓取并分析BLE广播包,从PDU结构到AD Type的实战解析。通过硬件设备选择、软件配置、协议栈解析及高级故障排查,帮助开发者深入理解蓝牙低功耗通信机制,提升物联网设备调试效率。

weixin_30482383的博客 417

Python把类当做字典来访问

定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下: class A: def __init__(self): self.a = 1 self.b = 2 a = A() print(a.__dict__) # {'a': 1, 'b': 2} #获取变量a: print(a.__dict__['a']) # 1 如果我们想直接通过字典的方式访问类,obj=A(),dict(obj)直接拿到类的所有实例变

python学习者的博客 899

跨境TRS投资操作指南与系统解决方案

3 点击【申请 TRS 账户】,查看风险披露,录入账户参数、确定录入的参数信息,进行身份验证,输入验证码,TRS 账户开户申请已提交,后台对已提交的 TRS 开户申请进行审核,审核成功后,短信邮箱提醒,进行登录;2.点击【申请TRS账户】,查看风险披露,录入账户参数、确定录入的参数信息,进行身份验证,输入验证码,TRS账户开户申请已提交,后台对已提交的TRS开户申请进行审核,审核成功后,短信邮箱提醒,进行登录;4)更广泛的投资选择:相比A股通,TRS可以交易更多的A股标的,提供了更广泛的投资选择。

2401_85487119的博客 2852

从零构建高精度电子秤:HX711与STM32的时序通信陷阱与实战避坑指南

本文详细解析了使用STM32F103C8T6与HX711模块构建高精度电子秤的通信时序陷阱与实战解决方案。重点探讨了微秒级延迟实现、数据读取算法、校准方法和滤波优化,帮助开发者避开常见通信问题,提升电子秤的测量精度和稳定性。

data3的博客 782

python构造自己的字典

代码参考《500 lines or less》, python要像字典一样实现,, 主要在自定义类中实现以下几个方法讲解都注释在代码中了, 其中_tree是底层数据结构,源代码是用普通二叉树实现的,python字典底层数据结构貌似是hash,当然,你也可以用个AVL树,红黑树, B+树,等实现底层数据结构。主要是能实现键-值对应的数据结构就行了...

漏れた玩具博客 2330

【2025最新版】Open3D 区域生长分割(python详细过程版)

点云区域生长分割算法的python详细过程版实现。博客长期更新,本文最新更新时间为:2025年3月23日。

点云侠的博客 9529

python函数中可变参数的传递方式是_Python中函数的参数传递与可变长参数介绍

#coding:utf-8 #设置python文件的编码为utf-8,这样就可以写入中文注释def foo(arg1,arg2="OK",*tupleArg,**dictArg):print "arg1=",arg1print "arg2=",arg2for i,element in enumerate(tupleArg):print "tupleArg %d-->%s" % (i,s...

weixin_39657825的博客 99

用 YOLOv11‑Seg 做工地实例分割:从 0 起步到效果调优,真香!

这不是一篇“官方文档翻译”,而是一篇。

weixin_43199439的博客 776

YOLO11涨点优化:损失函数优化 | 引入MPDIoU,利用边界框左上角和右下角距离,彻底解决重叠框匹配失效问题

【摘要】针对目标检测中重叠框匹配失效问题,本文提出基于MPDIoU损失函数的解决方案。MPDIoU通过同时约束边界框的左上角和右下角两点距离,有效解决了传统IoU损失在重叠场景下的优化歧义问题。文章首先分析YOLO系列在密集目标检测中的性能瓶颈,指出GIoU/CIoU等现有方法无法区分相同IoU值但偏移方向不同的预测框。随后详细解析MPDIoU的数学原理及其相对于主流损失函数的优势,证明两点距离约束能提供唯一优化方向。最后给出在YOLO11中实现MPDIoU的具体方案,包括核心代码修改点和架构适配建议。实验

2601_95807009的博客 172

巧用Python 枚举类设计状态码信息

在 `web` 项目中,我们经常使用自定义状态码来告知请求方请求结果以及请求状态;在 `Python` 中该如何设计自定义的状态码信息呢?

qq_43629857的博客 1738

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1632

python函数的传递方式有哪些_Python函数的参数传递方式

Python函数的参数传递方式一、普通defadd(a,b):returna+bprint(add(1,2))#输出结果:3二、可选参数defmyjoin(string,sep='_'):#此处sep的缺省参数为"_"returnsep.join(string)print(myjoin(TTTT))#输出结果:T_T_T_Tprint(myjoin(TTTT,"="))#输出结果:T=T=...

weixin_39620273的博客 238

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python字典编码_python 可分组字典

class Person(object):def __init__(self,first_name,last_name):self.first_name =first_nameself.last_name = last_namedef __repr__(self):return u"first name :" + unicode(self.first_name) \+ u" ; last name...

weixin_39854923的博客 239

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python有序队列_python之单例模式、栈、队列和有序字典

一、单例模式1、常用的单例模块classSingleton(object):_instance =Nonedef __new__(cls, *args, **kwargs):if not cls._instance:cls._instance = super(Singleton, cls).__new__(cls)return cls._instances1=Singleton()s2=Singl...

weixin_39731845的博客 303

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python的函数(一)

函数的定义 函数的一般形式: 定义一个函数,需要以下规则:     函数代码块以def关键字开头,后接函数标识符名称和圆括号(),圆括号里的参数为形参。     任何传入参数和变量必须放在圆括号中间,圆括号中间可以用来定义参数。     函数的第一行语句可以选择性地使用文档字符串一用于存放函数说明。     函数内容以冒号起始,并且缩进。return [表达式]结束函数,选择性的返回一

勇敢的心博客 249

python的形参和实参

一个函数的形参共有四种情况:无参数、普通参数、默认值参数、可变参数 1、无参数: # 定义函数 def test(): print("无参数的情况") # 调用函数 test() 2、普通参数 # 定义函数 def test(name, age): print("普通参数:",name,age) # 调用函数(多个参数时,返回的一个元组) test('张三', 18) 3、默认值参数 # 定义函数 def test(name, age=18,): print("默认值参数:"

qq_37405087的博客 1253

python:枚举类

python实际开发中,需要定义类型时,一般是使用一组整数或者字符串来表示。如果使用常规的定义方式,非常容易被外部修改,Python3.4后,增加了枚举类的使用,就是为了解决这种场景而设计的。python枚举适用场景:值有限且固定(不希望被轻易或随意修改)的数据类型。Java也有枚举类的使用,使用关键字enum实现,而python一般是通过提供的Enum类继承实现的(python类支持多继承,java为类单继承)。

a232884c的博客 2619

python数据结构算法_Python——数据结构和算法

1. 解压变量1. 最简单的变量解压data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]name, _, price, date= data2. 需要一个变量接收多个值s = [1,2,3,4,5]a,*b, c =s>>> a为1; b为[2,3,4]; c为5.3. 存在嵌套的情况record = ('ACME', 50, 123.45, (12, 18, 2...

weixin_39803207的博客 177

python函数形式参数_python 中函数参数传递形式

则调用时必须是这样f(x=' ',y=' '),不能省略,否则报错。3.F(*arg1)上面俩个方式是有多少个形参,就传进去多少个实参,但有时候会不确定有多少个参数,则此时第三种方式就比较有用,它以一个*加上形参名的方式来表示这个函数的实参个数不定,可能为0个也可能为n个。注意一点是,不管有多少个,在函数内部都被存放在以形参名为标识符的tuple中。>>> def a(*x):i...

weixin_35698091的博客 317

java和python中迭代器的区别

迭代器遍历集合的区别 java迭代器 在一开始学习java的时候遍历map集合只会一种方法,通过keySet()方法 public class Demo02KeySet { public static void main(String[] args) { //创建一个Map集合 Map<String,Integer> map = new HashMap<>(); map.put("赵丽颖",168); map.p

小赵的呢 244

python中的匿名函数

,匿名函数的定义  在Python语言中除了def语句用来定义函数之外,还可以使用匿名函数lambda,它是Python一种生成函数对象的表达式形式。匿名函数通常是创建了可以被调用的函数,它返回了函数,而并没有将这个函数命名,普通函数需要去依靠函数名去调用而匿名函数没有,所以需要把这个函数对象复制给某个变量进行调用 lambda有时被叫做匿名函数也就是这个原因,需要一个函数,又不想动脑筋去想名字,...

wyqwilliam的博客 2044

Python namedtuple 命名元组

namedtuple 是具有名称的元组, 与普通元组一样, namedtuple 也是不可变的序列, 除了支持整数索引访问, namedtuple 还支持点属性的方式访问元素 namedtuple 工厂函数 创建新类型的同时会自动生成文档字符串以及 __repr__ 方法 namedtuple 内置了一些以单下划线开头的属性和方法 Python 3.6 还提供一种全新的语法来定义命名元组(typing.NamedTuple)

jianghuixin 521

python中的枚举

在python中可以用枚举代表不同的类型。 #枚举在python中是一个类,所有的枚举类型都是Enum类子类# #枚举是主要作用是打tab,枚举中的tab一般以大写字母出现# from enum import Enum class ComPany(Enum): SALESMAN = 1 ADMINISTRATIVE = 2 LOGISTICS = 3 MANA...

知易行难的学习笔记 474

python函数中带*及**参数

python在定义函数的时候,不仅可以设置普通的形参:如deffun(arr1,arr2='我是2号参数'):#arr1为必传参数,arr2可以不用另外还可以传入两种特殊的参数:带*或**的参数。这两类形式的参数都可以传入任意数量的实参,它们的不同点主要在于*参数传入的为一个元祖(tuple);**参数出入的则为一个字典(dict)。由于传入的参数...

weixin_34351321的博客 741
上一篇: 【Python】顺序字典(OrderedDict)的定义和使用方式
下一篇: 【Python】items()方法的介绍和使用方式
读思辨
博客等级 码龄9年 428粉丝 61原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值