我有一本字典,上面有这样的键值。
>>>dict.keys()
[('4', '12'), (('8', '9'), ('10', '11')), (('8', '10'), ('12', '14')), (('10', '11'), ('14', '15'))]
我想格式化键值,使其看起来像这样。
>>>dict.keys()
[('4', '12'), ('8', '9', '10', '11'), ('8', '10', '12', '14'), ('10', '11', '14', '15')]
内部括号已在预期输出中删除。我尝试将键转换为列表,然后格式化值,但未提供预期的输出。
谢谢。
编辑
字典中与键相对应的值保持不变。另外,我想直接在字典中更改键格式,而不是将其转换为列表,因为这会在代码的其他部分产生错误。
输入字典:
{('4', '12'): '-100', (('8', '9'), ('10', '11')): '10--', (('8', '10'), ('12', '14')): '1--0', (('10', '11'), ('14', '15')): '1-1-'}
预期的输出字典:
{('4', '12'): '-100', ('8', '9', '10', '11'): '10--', ('8', '10', '12', '14'): '1--0', ('10', '11', '14', '15'): '1-1-'}
答案 0 :(得分:2)
尝试使用chain()
def is_nested_tuple(tupl):
return any(isinstance(elem, tuple) for elem in tupl)
lst = [tuple(chain(*tupl)) if is_nested_tuple(tupl) else tupl for tupl in lst]
输出
=> [('4', '12'), ('8', '9', '10', '11'), ('8', '10', '12', '14'), ('10', '11', '14', '15')]