在这个用例中我找不到类似的问题。
我有一个包含列表的字典,我想从每个列表中提取一个特定的索引,并使用相同的键将其分配给新字典。
dict1 = {
'key1': ['a', 'b', 'c'],
'key2': ['d', 'e']
}
进入
dict2 = { # taking index 1 of each list
'key1': 'b',
'key2': 'e'
}
这无法通过dict.update来完成,而且我无法找到一种内置方法来执行此操作,而无需手动遍历每个不是pythonic的键。
答案 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