字典推导式_字典推导式的使用

5e2dd9854a875b58c4432e862647ec59.png

点击“蓝字”关注,一起进阶共同成长

列表推导式可以帮助你通过某个条件取出一个字典的子集;也可以把一个列表通过规则重组为一个字典,方便后续使用。

取出一个字典的子集

d = {    'a': 1,    'b': 2,    'c': 3,    'd': 4,    'e': 5,    'f': 6,    'g': 7}case1 = {k: v for k, v in d.items() if v > 4}print(f'case1: {case1}')case1: {'e': 5, 'f': 6, 'g': 7}

列表重组为一个字典

nodes = [    {'node_id': "e3rdf", 'number': '1001'},    {'node_id': "f5g44", 'number': '1002'},    {'node_id': "hbj7h", 'number': '1003'},    {'node_id': "jky7g", 'number': '1004'}]case2 = {item['node_id']: item for item in nodes}print(f'case2: {case2}')case2: {'e3rdf': {'node_id': 'e3rdf', 'number': '1001'}, 'f5g44': {'node_id': 'f5g44', 'number': '1002'}, 'hbj7h': {'node_id': 'hbj7h', 'number': '1003'}, 'jky7g': {'node_id': 'jky7g', 'number': '1004'}}

使用dict()也可以实现同样的效果

case3 = dict((item['node_id'], item) for item in nodes)print(f'case3: {case3}')case3: {'e3rdf': {'node_id': 'e3rdf', 'number': '1001'}, 'f5g44': {'node_id: 'f5g44', 'number': '1002'}, 'hbj7h': {'node_id': 'hbj7h', 'number': '1003'}, 'jky7g': {'node_id': 'jky7g', 'number': '1004'}}

详细说一下dict()

# dict用法有一下三种# class dict(**kwarg)# class dict(mapping, **kwarg)# class dict(iterable, **kwarg)# 下面举例说明case1 = dict(a='one', b='two', c='three')print(f'case1: {case1}')case2 = dict([('a', 'one'), ('b', 'two'), ('c', 'three')])print(f'case2: {case2}')# [('a', 'one'), ('b', 'two'), ('c', 'three')]可以使用另一种input的形式zip(['a', 'b', 'c'], ['one', 'two', 'three'])case3 = dict(zip(['a', 'b', 'c'], ['one', 'two', 'three']))print(f'case3: {case3}')case1: {'a': 'one', 'b': 'two', 'c': 'three'}case2: {'a': 'one', 'b': 'two', 'c': 'three'}case3: {'a': 'one', 'b': 'two', 'c': 'three'}

24d6082699f8f7d9532e79c78703b77c.png

欢迎留言和我分享,我会第一时间给你反馈

716aaedb6635f808caa1f7a81d5e287a.gif

长按关注

一起进阶

  Do Hard  

d67412dc9c762930d13eb283fe71b02a.png 13168b539cf43f9c68a85e4fb7333de9.png  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值