使用zip()
将分割键和值配对;你想建立一个新的字典在这里:
new = {}
for key, value in dic.items():
if '_' not in key:
new[key] = value
continue
for new_key, new_value in zip(key.split('_'), value):
new[new_key] = new_value.split('_')
你可以在一个字典解析醪这一点,但它变得相当困难遵循:
{nk: (nv.split('_') if '_' in k else v)
for k, v in dic.items() for nk, nv in zip(k.split('_'), v)}
演示:
>>> dic = {'shape': ['a', 'b', 'c'], 'item1_item2_item3': ['1_2_3', '5_6_10', '3_7_9']}
>>> new = {}
>>> for key, value in dic.items():
... if '_' not in key:
... new[key] = value
... continue
... for new_key, new_value in zip(key.split('_'), value):
... new[new_key] = new_value.split('_')
...
>>> new
{'item2': ['5', '6', '10'], 'item3': ['3', '7', '9'], 'shape': ['a', 'b', 'c'], 'item1': ['1', '2', '3']}
>>> {nk: (nv.split('_') if '_' in k else v)
... for k, v in dic.items() for nk, nv in zip(k.split('_'), v)}
{'item2': ['5', '6', '10'], 'item3': ['3', '7', '9'], 'shape': ['a', 'b', 'c'], 'item1': ['1', '2', '3']}
你自己已经尝试过什么了吗? –
我将文件保存到csv并通过逐行读取再次打开它。 – Omar