迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中的嵌套字典推导

作者:迹忆客 最近更新:2023/04/25 浏览次数:

Python 字典推导是一个强大的工具,允许您从现有的字典创建新的字典。 它类似于列表理解,但它不是创建列表,而是创建字典。

字典推导是创建字典的一种非常简洁的方法,当您想从几个元组创建字典时非常有用,其中一个元组包含键和值。

在本教程中,我们将探索 Python 嵌套字典推导、它的使用以及在 Python 中使用它的优势。

Python字典推导

词典理解是一个强大的工具,我们可以使用它对词典执行各种操作,例如过滤、转换或创建新词典。

字典推导允许您从其他字典或其他可迭代数据类型创建字典。 它们还允许您指定键值对而不仅仅是值。

词典理解最常用于从现有词典创建新词典。 例如,您可以创建一个仅包含现有字典中的键或值的新字典。

您还可以创建一个新字典,其中包含来自两个现有字典的键和值。 我们还可以使用字典推导来操纵现有的字典。

例如,您可以在字典中添加或删除项目或更改现有项目的值。

square_dict= dict()

for num in range(1,4):
    square_dict[num] = num*num

print(square_dict)

# dictionarycomprehension example
square_dict= {num: num*num for num in range(1, 4)}

print(square_dict)

输出结果:

{1: 1, 2: 4, 3: 9}
{1: 1, 2: 4, 3: 9}

字典推导的句法

字典推导是一个方便的工具,用于从 Python 中的其他数据结构创建字典。 语法简单易读 {key: value for (key, value) in iterable}。

代码示例:

#The price of the item in dollars
old_price = {'price of milk': 2, 'price of coffee': 4, 'price of bread': 3.5}

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

输出:

{'price of milk': 1.52, 'price of coffee': 3.04, 'price of bread': 2.66}

Python嵌套字典推导

嵌套字典推导通过迭代一系列键值对,然后从这些键值对构建一个新字典来工作。 新字典可以使用任何映射函数构建,例如 dict.update 或 dict.fromkeys。

例如,考虑以下数据结构:

data = {
    'a': 1,
    'b': 2,
    'c': 3,
    'd': 4
}

要合成一个仅维护此数据结构中的键的新字典,您可以使用以下嵌套字典推导:

new_dict = {k: data[k] for k in data}
print(new_dict)

它会产生一个新的字典,看起来像这样:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

您可以使用以下嵌套字典推导来合成一个仅维护此数据结构中的值的新字典。

new_dict = {k: v for k, v in data.items()}

它会产生一个新的字典,看起来像这样:

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

如您所见,嵌套字典推导是一个强大的工具,可以快速高效地处理和操作复杂的数据结构。 这也是创建临时数据结构的一种简单方法。


Python 中嵌套字典推导的语法

要创建嵌套字典推导,请将另一个字典推导放在第一个字典推导的括号内。

下面的例子创建了一个字典的字典,每个内部字典包含不同水果的信息:

{key:value for key, value in outer_dict.items() if key =='fruit'}
{key:{'name':fruit['name'], 'colour':fruit['colour']} for key,fruit in outer_dict.items() if key == 'fruit'}

上面的第一个字典推导创建了一个字典,其中的键是水果的名称,值是这些水果的颜色。

上面的第二个字典推导做同样的事情,但增加了一个额外的嵌套级别,创建了一个字典的字典。

代码示例:

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

输出结果如下:

{2: {1: 2, 2: 4}, 3: {1: 3, 2: 6}, 4: {1: 4, 2: 8}}

嵌套字典推导的优点

在 Python 中使用嵌套字典推导有几个优点。

  • 我们可以使用它们轻松地创建复杂的嵌套字典。
  • 我们可以使用它们来高效地处理大量数据。
  • 最后,我们可以使用它们在现有词典的基础上快速创建新词典。

因此,了解嵌套字典推导式的工作原理,您可以在 Python 中快速高效地处理复杂数据。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

Django 返回 JSON

发布时间:2023/05/04 浏览次数:106 分类:Python

在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。

在 Django 中创建对象

发布时间:2023/05/04 浏览次数:59 分类:Python

本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。

在 Django 中为多项选择创建字段

发布时间:2023/05/04 浏览次数:75 分类:Python

在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便