繁体   English   中英

从所有字典值中获取第n个元素-Python

[英]Get n-th element from all dictionary values - Python

是否有任何现成的语法/功能可以返回所有字典键的第n个值。 例如,以下dic的n=2

dic = {'a': [1, 2, 3, 4],
       'b': [5, 6, 7, 8],
       'c': [9, 10, 11, 12]}

会返回:

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

附言:我肯定知道所有列表的长度都相同。

尝试这个:

>>> n = 2 
>>> {k:v[n] for k,v in dic.items()}
{'c': 11, 'b': 7, 'a': 3}

避免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}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM