[英]Python: Convert list to dict keys for multidimensional dict with exception handling
[英]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.