如何在打印itertools生成的列表结果时插入换行符?
解决itertools.product排列结果的可读性问题
直接遍历itertools.product返回的可迭代对象,将每个元组元素用空格拼接后单独打印即可,无需先转换为列表。
修改后的代码
import itertools s = [['1', '2','3'], ['a','b'], ['4','5','6','7'], ['f','g','e','y']] for combination in itertools.product(*s): print(' '.join(combination))
为什么这样有效?
itertools.product(*s)返回的是一个可迭代生成器,每次迭代输出一个排列组合的元组。- 用
' '.join(combination)把元组内的元素拼接成空格分隔的字符串,print()默认会自动换行,正好实现每个结果独占一行的需求。 - 原代码中
list(itertools.product(*s))会把所有结果一次性打包成列表,打印出来就是紧凑的元组集合,可读性极差。
内容的提问来源于stack exchange,提问作者errzoned
相关产品推荐
相关产品推荐

