是否有任何开箱即用的语法/ func会返回所有字典键的第n个值。例如dic = {'a': [1, 2, 3, 4],
'b': [5, 6, 7, 8],
'c': [9, 10, 11, 12]}
用于以下dic
newdic = {'a': 3,
'b': 7,
'c': 11}
将返回:
def nth_value(n, **kwargs):
dic = {}
for key, value in kwargs.items():
dic[key] = value[n]
return dic
现在我定义了以下功能,但是我觉得它很难看。
epoch = 1499055085
P.S。我确信所有列表的长度都相同。
答案 0 :(得分:5)
试试这个:
>>> n = 2
>>> {k:v[n] for k,v in dic.items()}
{'c': 11, 'b': 7, 'a': 3}
答案 1 :(得分:1)
改进以避免IndexError: list index out of range
:
>>> dic = {'a': [1, 2, 3, 4],
'b': [5, 6, 7, 8],
'c': [9, 10, 11, 12]}
>>> n = 3
>>> {k:v[n] if n < len(v) else None for k, v in dic.items()}
{'a': 4, 'b': 8, 'c': 12}
>>> del dic['b'][-1]
>>> {k:v[n] if n < len(v) else None for k, v in dic.items()}
{'a': 4, 'b': None, 'c': 12}