如何访问列表中的字典键值?

Vin*_*odh 27 python

假设我有以下列表:

list = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
Run Code Online (Sandbox Code Playgroud)

如何访问密钥的特定值d

Ign*_*ams 31

索引列表然后dict.

print L[1]['d']
Run Code Online (Sandbox Code Playgroud)


Art*_*nka 14

首先,不要使用'list'作为变量名.

如果您有简单的带有唯一键的词典,那么您可以执行以下操作(请注意,将创建包含子词典中所有项目的新词典对象):

res  = {}
for line in listOfDicts:
   res.update(line)
res['d']
>>> 4
Run Code Online (Sandbox Code Playgroud)

除此以外:

getValues = lambda key,inputData: [subVal[key] for subVal in inputData if key in subVal]
getValues('d', listOfDicts)
>>> [4]
Run Code Online (Sandbox Code Playgroud)

或者非常基础:

def get_value(listOfDicts, key):
    for subVal in listOfDicts:
        if key in subVal:
            return subVal[key]
Run Code Online (Sandbox Code Playgroud)


Rob*_*wie 7

您没有提供足够的上下文来提供准确的答案(例如,您希望如何在多个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]
Run Code Online (Sandbox Code Playgroud)

另一个答案是直接访问dict(通过列表索引),但您必须知道密钥存在

mylist[1]['d']
Run Code Online (Sandbox Code Playgroud)

  • @raja:没有必要感谢我,特别是没有必要叫我先生!:)记得要提出你认为有用的答案. (4认同)

ins*_*get 5

如果你知道dict列表中哪个有你正在寻找的密钥,那么你已经有了解决方案(如Matt和Ignacio所示).但是,如果您不知道哪个dict有此密钥,那么您可以这样做:

def getValueOf(k, L):
    for d in L:
        if k in d:
            return d[k]
Run Code Online (Sandbox Code Playgroud)