我試圖獲得下面的預期輸出,它在下面創建子檔案夾John1, John2, John3,然后{0: 'John', 1: 'John', 2: 'John', 3: 'John'}為每個子檔案夾添加值,本質上創建了一個嵌套字典。我如何才能做到這一點并獲得預期輸出?
dicts = {}
keys = range(4)
name_vals = ['John' str(k 1) for k in range(3)]
values = ["Hi", "I", "am", "John"]
for k in name_vals:
for i in keys:
for x in values:
dicts[k][i] = x
預期輸出:
{John1: {0: 'John', 1: 'John', 2: 'John', 3: 'John'},
John2: {0: 'John', 1: 'John', 2: 'John', 3: 'John'},
John3: {0: 'John', 1: 'John', 2: 'John', 3: 'John'}}
uj5u.com熱心網友回復:
這是串列理解的方式
values = ["Hi", "I", "am", "John"]
{ f'Jhon{k 1}': {i: values[3] for i in range(len(values))} for k in range(3)}
輸出:
{'Jhon1': {0: 'John', 1: 'John', 2: 'John', 3: 'John'},
'Jhon2': {0: 'John', 1: 'John', 2: 'John', 3: 'John'},
'Jhon3': {0: 'John', 1: 'John', 2: 'John', 3: 'John'}}
uj5u.com熱心網友回復:
你可以試試這個
keys = range(4)
name_vals = ['John' str(k 1) for k in range(3)]
values = ["Hi", "I", "am", "John"]
dicts = {}
for k in name_vals:
subdict = {}
for i in keys:
subdict[i] = values[i]
dicts[k] = subdict
dicts
輸出
{'John1': {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'},
'John2': {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'},
'John3': {0: 'Hi', 1: 'I', 2: 'am', 3: 'John'}}
如果您希望所有值都為 'john' 那么只需替換values[i]為values[3]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316003.html
下一篇:回傳字典值時第4行實際發生了什么
