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

版权声明:本博客内容为学习过程中的一些记录,大部分转载内容已标明转载,部分内容如有因疏忽未注明请与我联系,转载原创内容请注明链接,谢谢! https://blog.csdn.net/xiaodongxiexie/article/details/79625441

这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎star

github地址

有时候我们需要从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 ,毕竟更方便不是~

这个repo 用来记录一些python技巧、书籍、学习链接等,欢迎star

github地址

猜你喜欢

转载自blog.csdn.net/xiaodongxiexie/article/details/79625441