簡體   English   中英

Python:訪問詞典列表中存在的特定詞典

[英]Python:Accessing a particular dictionary present in a list of dictionary

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

我想訪問第二本詞典。 我嘗試過提供鑰匙。

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

但是我沒有鑰匙。 我想借助第二本字典進行一些操作。 有人可以幫忙嗎? 在這里,我想訪問每個沒有索引的字典,並對每個字典進行一些操作,並移至下一個字典,對下一個字典進行操作,等等。 有什么辦法嗎?

由於list1dictionarylist ,因此請嘗試使用列表索引(在這種情況下為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'}

只需使用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'}

您可以使用此:

list1[1]["name"]="some thing"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM