Skip to main content
 首页 » 编程设计

Python删除两个for循环并使用一些迭代器工具解决

2025年05月04日17youxin

我有一本字典

input = { 
    1:[23,24], 
    2:[21], 
    3:[23], 
    4:[] 
    } 

我想要这样的输出:-

output = (1,23),(1,24),(2,21),(3,23) 

我使用两个 for 循环完成了此操作:-

>>> for key in input: 
...     for value in input[key]: 
...         print """(""" + str(key) + """,""" +str(value) + """)""" 
...  
(1,23) 
(1,24) 
(2,21) 
(3,23) 

有人可以告诉我另一种方法吗?使用一些迭代器工具或任何其他方式?

谢谢

请您参考如下方法:

>>> [(key, value) for key, values in input.items() for value in values] 
>>> [(1, 23), (1, 24), (2, 21), (3, 23)] 
>>> '\n'.join('({},{})'.format(key, value) for key, values in input.items() for value in values) 
'(1,23)\n(1, 24)\n(2, 21)\n(3, 23)' 
>>> print('\n'.join('({},{})'.format(key, value) for key, values in input.items() for value in values)) 
(1,23) 
(1,24) 
(2,21) 
(3,23) 
>>> ','.join('({},{})'.format(key, value) for key, values in input.items() for value in values) 
'(1,23),(1,24),(2,21),(3,23)'