[英]How to avoid nested for loops when combining values from two lists of dictionaries in Python?
[英]python: how to access values in nested dictionaries using loops
給定以下 Python 字典。
dict = {'site1': {'status': 200}, 'site2': {'status': 200}, 'site3': {'status': 200}}
如何迭代和訪問子字典的值?
for sub in dict.items():
print(sub["status"])
給出錯誤:元組索引必須是整數或切片,而不是 str
預期結果:打印 3 個字符串,指示每個子字典的站點狀態。
items()
返回一個 (key, value) 元組,所以 for 循環應該是這樣的:
dct = {'site1': {'status': 200}, 'site2': {'status': 200}, 'site3': {'status': 200}}
for key, value in dct.items():
print(value['status'])
出去:
200
200
200
dict.items()
返回可迭代的元組對(key, value)
。 在這里你想進一步索引一個value ,所以你應該這樣做:
for sub in dict.values():
print(sub["status"])
僅迭代值。
或者:
for key, sub in dict.items():
print(sub["status"])
解包元組(這是處理dict.items()
時通常所做的)。
當然,您也可以先索引元組 - sub[1]["status"]
但它不那么可讀。
PS 你永遠不應該把你的字典命名為dict
(也不應該列出list
)——它是一個用於表示類型的內置名稱。 更改它可能會在以后引入錯誤。
for sub in dict.values():
print(sub)
#that will gives you list of dictionaries
{'status': 200} {'status': 200} {'status': 200}
現在打印鍵值
for sub in dict.values():
print(sub['status'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.