3 回答

TA貢獻1802條經驗 獲得超5個贊
>>> {k: {va: vb} for k, (va, vb) in zip(a, b.items())}
{3: {'a': 1}, 4: {'b': 2}}

TA貢獻1839條經驗 獲得超15個贊
像這樣:
a = [3, 4]
b = {'a': 1, 'b': 2}
c = {i: {k:b[k]} for i,k in zip(a,b)}
print(c)
輸出:
{3: {'a': 1}, 4: {'b': 2}}

TA貢獻1966條經驗 獲得超4個贊
在我看來,一種更“Pythonic”的方式是使用更具描述性的變量名和dict()構造函數:
keys = [3, 4]
orig_dict = {'a': 1, 'b': 2}
nested_dict = {key: dict([item]) for (key, item) in zip(keys, orig_dict.items())}
另一種方法,使用中間可迭代:
sub_dicts = [dict([item]) for item in orig_dict.items()]
nested_dict = dict(zip(keys, sub_dicts))
最后,在這種情況下,只使用循環似乎就好了:
nested_dict = {}
for key, item in zip(keys, orig_dict.items()):
nested_dict[key] = dict([item])
添加回答
舉報