簡體   English   中英

將 [dict] 中的所有鍵轉換為 python 中的 dict

[英]Convert all keys inside [dict] to dict in python

將字典列表中的所有鍵轉換為字典的任何優雅方法? 像這樣:

aa = [
    {"option": "-c","params":4},
    {"option": "-t", "params": 8},
    {"option": "name", "params": "bb"}
]

bb = convert_function(aa)

print(bb)  # will like the following
{
    "-c": 4,
    "-t": 8,
    "name": "bb"
}

列表中 dict 中的所有鍵將始終(且僅)具有鍵:“option”和“params”

我現在的解決方案是:

aa = [
    {"option": "-c","params":4},
    {"option": "-t", "params": 8},
    {"option": "name", "params": "bb"}
]
bb = dict()
for item in aa:
    bb[item['option']] = item['params']

由於字典遵循一種格式,您可以簡單地:

dict(x.values() for x in aa)

沒有內置的 function 可以幫助您。 因此,您可以編寫自定義 function,如下所示:

def convert_function(aa):
    return dict(x.values() for x in aa)

aa = [
    {"option": "-c","params":4},
    {"option": "-t", "params": 8},
    {"option": "name", "params": "bb"}
]

bb = convert_function(aa)
# {'-c': 4, '-t': 8, 'name': 'bb'}

您可以使用dictionary comprehension在一行中執行此操作:

>>> aa = [{'option': '-c', 'params': 4}, {'option': '-t', 'params': 8}, {'option': 'name', 'params': 'bb'}]
>>> dict((item['option'], item['params']) for item in aa)
{
    '-c': 4,
    '-t': 8,
    'name': 'bb'
}

如果您想為此使用“單線功能”,您可以使用lambda

>>> bb= lambda aa: dict((item['option'], item['params']) for item in aa)
>>> bb(aa)
{'-c': 4, '-t': 8, 'name': 'bb'}

如果你想要它更緊湊(雖然我覺得這有點不可讀),你可以這樣做:

>>> bb= lambda aa: dict(_.values() for _ in aa)
>>> bb(aa)
{'-c': 4, '-t': 8, 'name': 'bb'}

暫無
暫無

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

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