在字典python

时间:2018-10-17 08:50:09

标签: python dictionary

我有一本字典,上面有这样的键值。

>>>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-'}

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')]