我有以下字典:
a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
,我希望能夠在從串列中加載時通過回圈回傳:
{'chance': {'instance1': '1', 'instance2': '2', 'instance3': '3', 'instance4': '4'}}
串列如下所示:
pol=["1","2","3","4"]
我試著用這樣的回圈來做:
for i in range(1,5):
for j in range(4):
print(j)
或像這樣:
for line in inst['chance']:
miroute = re.match('instance*', line)
if miroute:
for i in range(4):
print(i)
break
print(miroute)
但沒有成功,你知道如何處理它
uj5u.com熱心網友回復:
您走在正確的軌道上,瀏覽字典可能會很棘手,但f-strings如果您嘗試將大量數字和字串匹配在一起,我強烈建議您:
a = {'chance': {}}
for i in range(1,5):
a['chance'][f'instance{i}'] = i
print(a)
{'chance': {'instance1': 1, 'instance2': 2, 'instance3': 3, 'instance4': 4}}
如果您絕對必須a像上面那樣開始,您仍然可以使用相同的代碼完成您的作業,因為它仍然會以相同的方式撰寫密鑰:
a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
for i in range(1,5):
a['chance'][f'instance{i}'] = i
print(a)
{'chance': {'instance1': 1, 'instance2': 2, 'instance3': 3, 'instance4': 4}}
uj5u.com熱心網友回復:
一種方法是:
a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
pol=["1","2","3","4"]
d = a['chance']
keys = iter(d.keys())
for p in pol:
d[next(keys)] = p
print(a)
輸出:
{'chance': {'instance1': '1', 'instance2': '2', 'instance3': '3', 'instance4': '4'}}
檔案中的一些幫助:
- dict.keys()
- 迭代器()
- 下一個()
uj5u.com熱心網友回復:
這里還有另一種方式...
a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
pol=["1","2","3","4"]
b = {'chance': {}}
for x, y in zip(a['chance'], pol):
b['chance'][x] = y
print(b)
{'chance': {'instance1': '1', 'instance2': '2', 'instance3': '3', 'instance4': '4'}}
uj5u.com熱心網友回復:
簡單的方法。
dict_ = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
pol=["1","2","3","4"]
for index,key in enumerate(list(dict_['chance'])):
dict_['chance'][key]=pol[index]
print(dict_)
輸出
{'chance': {'instance1': '1', 'instance2': '2', 'instance3': '3', 'instance4': '4'}}
uj5u.com熱心網友回復:
你可以簡單地dict comprehension在a["chance"]
a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
a["chance"].update({x:str(i) for i,(x,_) in enumerate(a["chance"].items())})
print(a)
輸出:
{'chance': {'instance1': '0', 'instance2': '1', 'instance3': '2', 'instance4': '3'}}
uj5u.com熱心網友回復:
'chance'如果您愿意,可以將以下解決方案擴展為多個:
>>> a = {'chance1': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''},
'chance2': {'instance5': '', 'instance6': '', 'instance7': '', 'instance8': ''},}
>>> pol=["1","2","3","4", "5", "6", "7","8"]
>>> {key : {k : pol[f_idx*4 idx] for idx, (k,v) in enumerate(a[key].items())} for f_idx, (key, dct) in enumerate(a.items())}
{'chance1': {'instance1': '1','instance2': '2','instance3': '3','instance4': '4'},
'chance2': {'instance5': '5','instance6': '6','instance7': '7','instance8': '8'}}
你可以這樣做one_line:
>>> a['chance'] = {k : pol[idx] for idx, (k,v) in enumerate(a['chance'].items())}
>>> a
{'chance': {'instance1': '1','instance2': '2','instance3': '3','instance4': '4'}}
輸入:
a = {'chance': {'instance1': '', 'instance2': '', 'instance3': '', 'instance4': ''}}
pol=["1","2","3","4"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493442.html
下一篇:如何迭代串列中的值?
