Python字典实例分析

发布时间:2022-01-26 09:27:55 作者:iii
来源:亿速云 阅读:203

这篇文章主要介绍了Python字典实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python字典实例分析文章都会有所收获,下面我们一起来看看吧。

什么是 Python 中的字典?

Python 中的字典允许我们存储两组值之间的一系列映射,即键和值。

这是字典的一般示例:

my_dict = {"key1":<value1>,"key2":<value2>,"key3":<value3>,"key4":<value4>}

在上面的例子中,

现在我们知道了 Python 字典是什么,让我们继续学习字典理解。

如何使用字典理解从可迭代对象创建 Python 字典

在本节中,让我们使用字典理解从可迭代对象(例如列表或元组)创建 Python 字典。

如果我们选择动态生成键或值,我们可以只使用一个可迭代对象来创建一个新的 Python 字典。

当我们选择动态生成值时,我们可以使用迭代中的项目作为键,反之亦然。

一般语法如下所示。请注意 <> 之间的名称是实际变量名称的占位符。

<dict_name> = {<new_key>:<new_value> for <item> in <iterable>}

让我们解析上面的语法。

▶ 是时候举个简单的例子了。

Python 词典理解 - 示例 1

假设我们有一个访问我们商店的客户列表,我们想为每个客户提供随机折扣。我们希望折扣值介于 1 美元到 100 美元之间。

在 Python 中,random.randint(i,j)返回i和之间的随机整数j,其中两个端点都包含在内。

因此,我们可以使用randint()Python 的 random 模块中的函数为列表中的每个客户生成 $1 到 $100 之间的折扣。

下面的代码片段展示了我们如何discount_dict从客户列表中创建一个新字典。

import random
customers = ["Alex","Bob","Carol","Dave","Flow","Katie","Nate"]
discount_dict = {customer:random.randint(1,100) for customer in customers}
print(discount_dict)

#Output

{'Alex': 16, 'Bob': 26, 'Carol': 83, 'Dave': 21, 'Flow': 38, 'Katie': 47, 'Nate': 89}

上面的示例执行以下操作:

如何使用字典理解从两个可迭代对象创建 Python 字典

如果我们已经有包含键和值的预定义可迭代对象怎么办?假设您有两个列表,list_1并且list_2–list_1包含键和list_2相应的值。

我们现在可以使用 Python 的zip()函数来压缩这两个列表以生成键值对。

注意:该zip函数接受一系列可迭代对象作为参数,并返回一个元组迭代器,如下图所示。

Python字典实例分析

所以,第一个元组是第一个键值对,第二个元组是第二个键值对,一般来说,第i个元组是第i个键值对。

在这种情况下,字典理解采用以下形式:

<dict_name> = {<new_key>:<new_value> for (key,value) in zip(list1,list2)}

解析上述语法非常简单。

▶ 是时候看另一个快速示例了。

Python 词典理解 - 示例 2

假设我们想创建一个我们城市每周温度的字典。天数应该是键,与天数对应的温度(摄氏度)应该是值。

假设我们有两个列表中的天数和温度,如下所示。

days = ["Sunday", "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
temp_C = [30.5,32.6,31.8,33.4,29.8,30.2,29.9]

我们现在可以继续使用字典理解来创建每周温度的字典。

# Creating a dictionary of weekly tempertaures
# from the list of temperatures and days

weekly_temp = {day:temp for (day,temp) in zip(days,temp_C)}

print(weekly_temp)

# Output
{'Sunday': 30.5, 'Monday': 32.6, 'Tuesday': 31.8, 'Wednesday': 33.4, 'Thursday': 29.8, 'Friday': 30.2, 'Saturday': 29.9}

在上面的示例中,我们使用该zip()函数将日期和温度列表压缩在一起。我们现在可以通过使用任何一天作为键来访问字典来获取当天的温度,如下所示:

weekly_temp["Thursday"]
# Output
29.8

如何在 Python 字典上使用 items() 方法

到目前为止,我们已经看到了如何使用键来访问值。我们如何访问字典中的所有键值对?

为此,我们可以调用items()字典上的方法来获取所有键值对,如下面的代码片段所示。

discount_dict.items()

# Output
dict_items([('Alex', 16), ('Bob', 26), ('Carol', 83), ('Dave', 21), ('Flow', 38), ('Katie', 47), ('Nate', 89)])

如何使用字典理解从现有字典创建 Python 字典

假设我们已经有一个 Python 字典。

但是,我们想创建一个新字典,其中仅包含我们字典中满足特定条件的项目。字典理解在这方面非常方便。

<dict_name> = {<new_key>:<new_value> for (key,value) in <dict>.items() if <condition>}

让我们解析上面的语法。我们使用该items()方法并获取现有字典中的所有键值对。

▶ 让我们举一个例子来看看这是如何工作的。

Python 词典理解 - 示例 3

让我们以之前创建discount_dict字典的折扣示例为基础。让我们discount_dict再看看我们的字典。

{'Alex': 16, 'Bob': 26, 'Carol': 83, 'Dave': 21, 'Flow': 38, 'Katie': 47, 'Nate': 89}

我们看到一些客户很幸运地获得了比其他客户更高的折扣。让我们解决这种差异,让我们所有的客户都满意。

我们现在想为折扣低于 30 美元的客户提供下次购买时 10% 的折扣。

在这种情况下,我们正在customer_10从我们的discount_dict字典中创建一个新字典。

customer_10 = {customer:discount for (customer, discount) in discount_dict.items() if discount<30}

print(customer_gifts)

# Output
{'Alex': 16, 'Bob': 26, 'Dave': 21}

上面的代码执行以下操作:

请注意如何将Alex、Bob和Davewho 的折扣低于 30 美元添加到新词典中。

关于“Python字典实例分析”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python字典实例分析”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Python字典dict
  2. Python字典的基本用法实例分析【创建、增加、获取、修改、删除】

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:Linux系统NFS配置的具体方法是什么

下一篇:@Transactional注解怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》