Python如何不用for循环打印无括号元组列表 每元素单独占一行
解决方案
你只需要修改两处代码即可满足要求:
- 开头补充导入
itertools依赖(原代码遗漏会运行报错) - 将最后一行的打印逻辑调整为用
map预处理元组为无括号的字符串,无需新增显式for循环
修改后的完整代码如下:
import itertools ns=[[4, 4], [5, 4], [3, 3]] for x in ns: n=x[0] m=x[1] f=list(range(1,n+1)) l=list(range(2,n+1)) permut = itertools.permutations(f, 2) permut=list(permut) s=list(filter(lambda x: x[1]==x[0]+1 , permut)) m=m-len(s) t=list(filter(lambda x: x[1]==x[0]+2 , permut)) for y in range(0,m): s.append(t.pop(0)) print(*map(lambda item: ' '.join(map(str, item)), s), sep='\n')
逻辑说明
- 内层
map(str, item)会把元组内的每个元素转为字符串 - 外层
' '.join()把转好的字符串用空格拼接,自动去掉元组的括号 - 全程没有新增显式
for循环,符合你的约束要求 - 最终unpack处理后的字符串列表,指定换行分隔,就能得到每行一个无括号元组的输出效果
内容的提问来源于stack exchange,提问作者Yashvar
相关产品推荐
相关产品推荐

