Python:访问字典列表中的特定字典

时间:2015-11-18 19:10:07

标签: python

list1:[
    {"name": "Tom", "age": 10},
    {"name": "Mark", "age": 5},
    {"name": "Pam", "age": 7}
       ]

我想访问第二本字典。我试过给钥匙。

next(item for item in dicts if item["name"] == "Mark")

但我没有钥匙。我想在第二本词典的帮助下做一些操作。任何人都可以帮忙吗? 在这里,我想访问每个字典没有索引&用每个字典做一些操作&走向下一个字典,为下一个字典&等等。有什么办法吗?

3 个答案:

答案 0 :(得分:2)

由于list1list dictionary,因此尝试使用列表索引访问字典(对于本例0-2) -

 >>>print list1[1]["name"]
>>>Mark
>>>lsit1[1]["name"] = 'Blah'
>>>lsit1
>>>[{'age': 10, 'name': 'Tom'}, {'age': 5, 'name': 'Blah'}, {'age': 7, 'name': 'Pam'}]
>>>del lsit1[1]['name'] #Delete a key
>>>lsit1
>>>[{'age': 10, 'name': 'Tom'}, {'age': 5}, {'age': 7, 'name': 'Pam'}]
>>>lsit1[1]['new_name']='Test'  #Add a key
>>>lsit1
>>>[{'age': 10, 'name': 'Tom'}, {'new_name': 'Test', 'age': 5}, {'age': 7, 'name': 'Pam'}]

编辑 -

看起来您的数据是json兼容的,然后尝试使用json模块 -

>>>import json
>>>#use json.loads and dumps to format data as below
>>>data =  {'list1':[{"name":"Tom","age":10},{"name":"Mark","age":5},{"name":"Pam","age":7}]}
>>>data['list1'][1]
>>>{'age': 5, 'name': 'Mark'}

答案 1 :(得分:0)

只需使用indexing

In [134]: list1[1]['name']
Out[134]: 'Mark'

第二个dict

In [137]: l[1]
Out[137]: {'age': 5, 'name': 'Mark'}

通过for循环求解并访问list中的第二项。

In [139]: for k, v in enumerate(l):
    if k==1:
        print v
   .....:         
{'age': 5, 'name': 'Mark'}

答案 2 :(得分:0)

您可以使用:

list1[1]["name"]="some thing"
相关问题