我有一個字典,我需要根據鍵名使用陣列中的值將其拆分為更小的字典:
dict = {'1_100': 50, '1_102': 100, '2_100': 150, '2_102': 200, '3_100': 50, '3_102': 100, ...}
narray = [1, 2, 3, 4, 5, ...]
我正在嘗試根據鍵的第一個數字拆分字典
到目前為止,我已經完成了以下作業:
for k, v in dict.items():
for t in narray:
if str(t) "_" in str(dict.keys()):
我不確定如何進行實際的拆分部分并確保在遇到“X_”鍵中的新數字時制作新字典。請注意,每個鍵的數量不同,因此拆分第 n 個數字是行不通的
我想理想地結束
dict1 = {'1_100': 50, '1_102': 100, ...}
dict2 = {'2_100': 50, '2_102': 100, ...}
dict3 = {'3_100': 50, '3_102': 100, ...}
dictN = {'N_100': 50, 'N_102': 100, ...}
任何幫助將不勝感激
uj5u.com熱心網友回復:
data = {'1_100': 50, '1_102': 100, '2_100': 150, '2_102': 200, '3_100': 50, '3_102': 100}
for k,v in data.items():
name = "dict" k.split("_")[0]
d = globals().get(name, {})
d.update({k:v})
globals()[name] = d
print(dict1)
print(dict2)
print(dict3)
結果:
{'1_100':50,'1_102':100}
{'2_100':150,'2_102':200}
{'3_100':50,'3_102':100}
uj5u.com熱心網友回復:
嘗試這個:
dcts = {str(n): {} for n in narray}
for k, v in dct.items():
dcts[k.split('_')[0]][k] = v
dcts = list(dcts.values())
dct是您的初始字典,dcts是字典串列(您可能希望洗掉空的)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/368172.html
