如何来理解Python中的字典数据类型

Karen110
• 阅读 1556

大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。

一、前言


字典是Python中的数据类型,可让将数据存储在键/值对中。

二、什么是字典理解?

字典理解是创建字典的一种优雅简洁的方法。

字典理解优化

使用字典理解优化函数。

例:

# 字典理解例:
square_dict = {num: num*num for num in range(1, 11)}
print(square_dict)

运行结果:

如何来理解Python中的字典数据类型

注·:

创建了square_dict带有数字平方键/值对的字典。但是,使用字典理解可以使在一行中创建字典。

三、使用字典理解

字典理解的最小语法为:

dictionary = {key: value for vars in iterable}

1. 图解析语法

让将此语法与上例中的字典理解进行比较。

如何来理解Python中的字典数据类型

2. 案例

如何使用字典理解

例:


#item price in dollars
old_price = {'milk': 1.02, 'coffee': 2.5, 'bread': 2.5}

dollar_to_pound = 0.76
new_price = {item: value*dollar_to_pound for (item, value) in old_price.items()}
print(new_price)

输出结果

如何来理解Python中的字典数据类型

注:

可以看到以美元为单位检索商品价格并将其转换为英镑。使用字典理解使此任务更加简单和短。

四、字典理解中的条件

可以通过添加条件来进一步自定义字典理解。让来看一个实例。

案例

1. 如果条件字典理解

例:


original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}

even_dict = {k: v for (k, v) in original_dict.items() if v % 2 == 0}
print(even_dict)

输出结果

如何来理解Python中的字典数据类型

可以看到,由于if字典理解中的子句,仅添加了具有偶数值的项目。

2. 多重if条件字典理解

例:

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}

new_dict = {k: v for (k, v) in original_dict.items() if v % 2 != 0 if v < 40}
print(new_dict)

输出结果

如何来理解Python中的字典数据类型

在这种情况下,仅奇数值小于40的项目已添加到新字典中。

这是因为if字典理解中有多个子句。等效于and必须同时满足两个条件的操作。

3. if-else条件字典理解

例:


original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}

new_dict_1 = {k: ('old' if v > 40 else 'young')
    for (k, v) in original_dict.items()}
print(new_dict_1)

输出结果

如何来理解Python中的字典数据类型

在这种情况下,将通过子典理解来创建新字典。

价值大于等于40的商品的值为“old”,而其他商品的值为“young”。

五、嵌套字典理解

可以将字典理解本身添加到字典理解中以创建嵌套字典。

案例

具有两个字典理解的嵌套字典

例:

dictionary = {
    k1: {k2: k1 * k2 for k2 in range(1, 6)} for k1 in range(2, 5)
}
print(dictionary)

输出结果

如何来理解Python中的字典数据类型

注:

在嵌套字典中构造了一个乘法表,用于2到4的数字。每当使用嵌套字典理解时,Python都会首先从外部循环开始,然后再进入内部循环。

六、使用字典理解的优势

如所见,字典理解大大缩短了字典初始化的过程。

它使代码更具pythonic风格,在的代码中使用字典理解可以缩短代码行,同时保持逻辑完整。

七、总结

本文基于Python基础,介绍了如何使用字典。通过分类对每一模块,进行详细的讲解。使用图解析语法,实例代码演示,运行效果图的展示,能够帮读者更好的理解。

在实际案例中遇到的问题,提供了一些有效的解决方案。使用Python语言,能够更直观的,加深读者对内容的理解。

代码很简单,希望能够帮助你更好的学习。

**-----**------**-----**---**** 送书 **-----**--------**-----**-****

欢迎各位大佬点击链接加入群聊【helloworld开发者社区】:https://jq.qq.com/?_wv=1027&k=mBlk6nzX进群交流IT技术热点。

本文转自 https://mp.weixin.qq.com/s/3rMUfpN09J-8Cc35qNIUFw,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
浅梦一笑 浅梦一笑
3年前
小白建议收藏,python20条非常实用的代码
Python一直以来被诟病速度慢,影响开发效率,希望这次Guido老爷子能帮python打一场漂亮的翻身仗。这篇文章不准备介绍Python速度如何,而是给大家带来一些常用且实用的Python代码实例,几乎是开发者必备的知识点。1、合并两个字典Python3.5之后,合并字典变得容易起来。我们可以通过符号解压字典,并将多个字典传入中,实现合并。defMerg
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Python进阶者 Python进阶者
3年前
说说Python集合的那些事儿
大家好,我是IT共享者,人称皮皮。今天给大家来捋一捋Python集合。一、什么是集合?集合(set)和字典(dict)类似,它是一组key的集合,但不存储value。集合的特性就是:key不能重复。二、集合常用操作1\.创建集合set的创建可以使用也可以使用set函数:s1'a','b','c','a','d','b'
Python进阶者 Python进阶者
3年前
如何来理解Python中的字典数据类型
大家好,我是IT共享者,人称皮皮。今天给大家讲解下Python中的字典数据类型。一、前言字典是Python中的数据类型,可让将数据存储在键/值对中。二、什么是字典理解?字典理解是创建字典的一种优雅简洁的方法。字典理解优化使用字典理解优化函数。例:字典理解例:squaredictnum:numnumfornuminrange(1,11)
Bill78 Bill78
3年前
Python 字典常用方法总结
Python字典可存储任意类型对象,如字符串、数字、元组……优点:取值方便,速度快1,创建字典字典由键(key)和对应值(value)成对组成。字典也被称作关联数组或哈希表。基本语法如下:dict{'Alice':'2341','Beth':'9102','Cecil':'3258'}注意:每个键与值用冒号隔开(:)
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之dict详解
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串、数字、元组等其他容器模型。本次主要介绍Python中字典(Dict)的详解操作方法,包含创建、访问、删除、其它操作等,需要的朋友可以参考下。字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:1.创建字典1234567\
小万哥 小万哥
1年前
Python - 字典1
字典用于存储键值对形式的数据。字典是一个有序、可更改的集合,不允许重复。从Python3.7版本开始,字典是有序的。在Python3.6及更早版本中,字典是无序的。字典用花括号编写,具有键和值:示例,创建并打印一个字典:Pythonthisdict"bra
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这