簡體   English   中英

如何獲取 python 中的字典列表中的鍵值列表?

[英]How can I get list of values of keys in list of dicts in python?

我有一個字典列表:

[{"app1": "value1"},{"app2": "value2"},{"app1": "value3"},{"app1": "value4"}, {"app3": "value5"}]

如何獲取列表中某個鍵的所有值? 因此,例如對於“app1”,它應該變成這樣:

{"app1":["value1", "value3", "value4"]}

對於“app2”,它就變成了:

 {"app2":["value2"]}

使用帶有嵌套for循環的defaultdict

from collections import defaultdict 

d = defaultdict(list)

lst = [{"app1": "value1"},{"app2": "value2"},{"app1": "value3"},{"app1": "value4"}, {"app3": "value5"}]

for i in lst:
    for k,v in i.items():
        d[k].append(v)

print(dict(d))
{'app1': ['value1', 'value3', 'value4'], 'app2': ['value2'], 'app3': ['value5']}
a = [{"app1": "value1"},{"app2": "value2"},{"app1": "value3"},{"app1": "value4"}, {"app3": "value5"}] #list of dicts

k = "app1" #key to look for

out = {k: []}
for item in a:
    for key in list(item):
        if key == k:
            out[k].append(item[key])

print(out)
{'app1': ['value1', 'value3', 'value4']}

您可以使用列表推導來獲取給定鍵的所有值:

>>> data = [{"app1": "value1"},{"app2": "value2"},{"app1": "value3"},{"app1": "value4"}, {"app3": "value5"}]
>>> {"app1": [d["app1"] for d in data if "app1" in d]}
{'app1': ['value1', 'value3', 'value4']}

如果你想把它全部累積到一個 dict 中,只需將列表理解放入一個 dict 理解中:

>>> {k: [d[k] for d in data if k in d] for d in data for k in d}
{'app1': ['value1', 'value3', 'value4'], 'app2': ['value2'], 'app3': ['value5']}

暫無
暫無

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

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