秀!巧用Python字典推导式将列表中的元素“值”转换字典格式

目录

1. Python 字典(Dictionary)

2. 示例:


1. Python 字典(Dictionary)

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。>>> tinydict = {'a': 1, 'b': 2, 'b': '3'}

>>> tinydict['b']

'3'

>>> tinydict

{'a': 1, 'b': '3'}

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

tinydict1 = { 'abc': 456 }

tinydict2 = { 'abc': 123, 98.6: 37 }

2. 示例:

contact_list = [{'display_name': '10手机', 'data1': '1-000-10'},

{'display_name': '11手机', 'data1': '1-000-11'}, ]

把上面的列表转成下面的字典

contact_dir = {'10手机': '1-000-10', '11手机': '1-000-11'}

巧用字典推导式将列表中的元素转换为所需的字典格式,下面是如何实现的示例代码:

contact_list = [{'display_name': '10手机', 'data1': '1-000-10'},
                {'display_name': '11手机', 'data1': '1-000-11'}]

contact_dict = {contact['display_name']: contact['data1'] for contact in contact_list}

print(contact_dict)

运行结果:

{'10手机': '1-000-10', '11手机': '1-000-11'}

在这个示例中,我们使用字典推导式创建了一个新字典 contact_dict,其中键是列表中每个字典的 'display_name' 键对应的值,而值是 'data1' 键对应的值。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python字典推导是一种快速创建字典的方法,它非常简洁和高效。通过字典推导,我们可以使用一个简洁的语法来创建一个字典,并且可以根据需要对字典的键对进行筛选或转换字典推导的语法形为: ```python {key_expression: value_expression for item in iterable if condition} ``` 其,`key_expression`是用于生成字典键的表达,`value_expression`是用于生成字典的表达,`item`是可迭代对象的每个元素,`if condition`是可选的条件语句,用于筛选元素。 举个例子,假设我们有一个列表`numbers`,我们想要创建一个字典字典的键是列表元素字典是每个元素的平方。我们可以使用字典推导来实现这个需求: ```python numbers = [1, 2, 3, 4, 5] squared_dict = {x: x**2 for x in numbers} ``` 这样,我们就得到了一个键为1到5的字典,对应的分别为1到25的平方。 字典推导还可以通过添加条件语句来筛选元素。例如,我们想要筛选出列表大于2的元素,并将它们作为字典的键,对应的元素的平方。我们可以这样做: ```python numbers = [1, 2, 3, 4, 5] squared_dict = {x: x**2 for x in numbers if x > 2} ``` 这样,我们得到的字典将只包含大于2的元素。 总结来说,Python字典推导是一种简洁而强大的方来创建和筛选字典。使用字典推导可以让我们的代码更加优雅和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风云说通信

支持小编为您创造更多干货,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值