我正在嘗試打開以下串列:
['06/07/20\n 22,43€ gas\n 34,70€ street toll, ' 08/07/20\n 74,90€ street toll, ' 13/07/20\n 78€ street toll\n 157,90€ gas']
進入這樣的字典:
{'06/07/20':['22,43€ gas', '34,70€ street toll'],'08/07/20':['74,90€ street toll'],'13/07/20':['78€ street toll', '157,90€ gas']}
我所做的是:
for i in parsf2:
if "/" in i:
new_dict[i]=i
elif "/" not in i:
new_dict[i]=i
else:
x.append(i)
print(new_dict)
而我目前的結果是:
{'06/07/20\n': '06/07/20\n', '22,43€ gas\n': '22,43€ gas\n', '34,70€ street toll\n': '34,70€ street toll\n', '\n': '\n', '08/07/20\n': '08/07/20\n', '74,90€ street toll\n': '74,90€ street toll\n', '13/07/20\n': '13/07/20\n', '78€ street toll\n': '78€ street toll\n', '157,90€ gas': '157,90€ gas'}
如何輕松修復初學者的代碼?
uj5u.com熱心網友回復:
你可以做
a = ['06/07/20\n 22,43€ gas\n 34,70€ street toll', ' 08/07/20\n 74,90€ street toll', ' 13/07/20\n 78€ street toll\n 157,90€ gas']
d = {k.splitlines()[0] : list(map(str.strip, k.splitlines()[1:])) for k in a }
輸出
{'06/07/20': [' 22,43€ gas', ' 34,70€ street toll'],
' 08/07/20': [' 74,90€ street toll'],
' 13/07/20': [' 78€ street toll', ' 157,90€ gas']}
uj5u.com熱心網友回復:
嘗試:
lst = [
"06/07/20\n 22,43€ gas\n 34,70€ street toll",
" 08/07/20\n 74,90€ street toll",
" 13/07/20\n 78€ street toll\n 157,90€ gas",
]
out = {}
for v in lst:
s = v.split(maxsplit=1)
if len(s) == 2:
k, v = s
out[k] = [w.strip() for w in v.splitlines()]
print(out)
印刷:
{
"06/07/20": ["22,43€ gas", "34,70€ street toll"],
"08/07/20": ["74,90€ street toll"],
"13/07/20": ["78€ street toll", "157,90€ gas"],
}
編輯:簡短說明:
我遍歷每個值lst并將其拆分為日期(第一部分)和其余部分(使用str.splitwithmaxsplit=1引數)
然后我將其余部分拆分為行 ( \n) 并去除空格,將結果存盤在out字典中。
uj5u.com熱心網友回復:
final_result = {}
for entry in parsf2:
entries = entry.split("\n")
final_result[entries[0]] = entries[1:]
>>> final_result
{'06/07/20': [' 22,43€ gas', ' 34,70€ street toll'], ' 08/07/20': [' 74,90€ street toll'], ' 13/07/20': [' 78€ street toll', ' 157,90€ gas']}
uj5u.com熱心網友回復:
您可以使用splitand dict comprehension,
In [1]: {i.split(maxsplit=1)[0]:i.split(maxsplit=1)[1].split('\n') for i in lst}
Out[1]:
{'06/07/20': ['22,43€ gas', ' 34,70€ street toll'],
'08/07/20': ['74,90€ street toll'],
'13/07/20': ['78€ street toll', ' 157,90€ gas']}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/518402.html
標籤:Python列表字典
上一篇:如何從2個字典中創建串列串列
