假设我有以下列表:
list = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
如何访问密钥的特定值d
?
答案 0 :(得分:30)
将列表编入索引然后输入字典。
print L[1]['d']
答案 1 :(得分:14)
首先不要使用'list'作为变量名。
如果您有简单的词典和唯一键,那么您可以执行以下操作(请注意,将创建包含子词典中所有项目的新词典对象):
res = {}
for line in listOfDicts:
res.update(line)
res['d']
>>> 4
否则:
getValues = lambda key,inputData: [subVal[key] for subVal in inputData if key in subVal]
getValues('d', listOfDicts)
>>> [4]
或者非常基础:
def get_value(listOfDicts, key):
for subVal in listOfDicts:
if key in subVal:
return subVal[key]
答案 2 :(得分:6)
您没有提供足够的上下文来提供准确的答案(例如,您希望如何在多个dicts中处理相同的键?)
一个答案是迭代列表,并尝试获取'd'
mylist = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
myvalues = [i['d'] for i in mylist if 'd' in i]
另一个答案是直接访问dict(通过列表索引),但你必须知道密钥存在
mylist[1]['d']
答案 3 :(得分:5)
如果你知道列表中哪个dict
有你正在寻找的密钥,那么你已经有了解决方案(由Matt和Ignacio提供)。但是,如果您不知道哪个dict有此密钥,那么您可以这样做:
def getValueOf(k, L):
for d in L:
if k in d:
return d[k]
答案 4 :(得分:3)
要从词典列表中获取所有值,请使用以下代码:
*