列表的python字典降到匹配索引的单个项目的字典

时间:2019-01-10 16:25:58

标签: python python-3.x list dictionary

在这个用例中我找不到类似的问题。

我有一个包含列表的字典,我想从每个列表中提取一个特定的索引,并使用相同的键将其分配给新字典。

dict1 = {
 'key1': ['a', 'b', 'c'],
 'key2': ['d', 'e']
}

进入

dict2 = {  # taking index 1 of each list
  'key1': 'b',
  'key2': 'e'
}

这无法通过dict.update来完成,而且我无法找到一种内置方法来执行此操作,而无需手动遍历每个不是pythonic的键。

1 个答案:

答案 0 :(得分:3)

怎么样

dict1 = {
 'key1': ['a', 'b', 'c'],
 'key2': ['d', 'e']
}

只需简单的一行即可检查列表中是否存在索引 (否则会将None添加到密钥) *编辑感谢@RoadRunner的建议

n = 1
dict2 = {k:v[n] if len(v) > n else None for k,v in dict1.items()}

或 一种不同的方法,有点像Python的EAFP方法:

dict2 = {}
n = 1

for k,v in dict1.items():
    try:
        dict2[k] = v[n]
    except IndexError:
        dict2[k] = None