dict取值_从dict中一次性取出指定一组key对应的value

有时候我们需要从dict (或者json)中取出指定key值对应的value ,当然可以逐个去取,那么,可不可以一次性取呢,回答当然是Yes, 如下:

# 随意构造一个dict

In [102]: from string import ascii_lowercase, ascii_uppercase

In [103]: d = list(zip(ascii_lowercase[:10], ascii_uppercase[-10:]))

In [104]: d

Out[104]:

[('a', 'Q'),

('b', 'R'),

('c', 'S'),

('d', 'T'),

('e', 'U'),

('f', 'V'),

('g', 'W'),

('h', 'X'),

('i', 'Y'),

('j', 'Z')]

In [105]: d = dict(d)

In [106]: d

Out[106]:

{'a': 'Q',

'b': 'R',

'c': 'S',

'd': 'T',

'e': 'U',

'f': 'V',

'g': 'W',

'h': 'X',

'i': 'Y',

'j': 'Z'}

#正常按key取值

In [107]: value1 = d['a']

...: value2 = d['b']

...: value3 = d['j']

...:

In [108]: value1, value2, value3

Out[108]: ('Q', 'R', 'Z')

#当然如果不确定key是否存在,可以用下面的方式

In [109]: value1 = d.get('a', -1000)

...: value2 = d.get('no', -1000)

...: value3 = d.get('h')

...:

In [110]: value1, value2, value3

Out[110]: ('Q', -1000, 'X')

# 一次性取出指定一组key对应的value

In [111]: from operator import itemgetter

In [112]: keys = ['a', 'b', 'j']

...: itemgetter(*keys)(d)

...:

Out[112]: ('Q', 'R', 'Z')

其实,如果只是取出一个key 对应的 value ,当然直接取就是,如果取出一组,则考虑使用itemgetter ,毕竟更方便不是~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值