如何合并print()调用?实现网格点输出行列交换的单print()写法
解决方案:用单次
print()实现动态交换行列输出 当然可以!你完全可以通过条件表达式来统一处理每个点的输出顺序,避免重复编写for循环,实现单次调用print()的需求。
这里有两种简洁的写法:
写法一:直接格式化字符串
print('\n'.join(f"{row} {col}" if not swapped else f"{col} {row}" for row, col in points))
写法二:元组解包后转字符串(更灵活,适合后续修改分隔符)
print('\n'.join(' '.join(map(str, (row, col) if not swapped else (col, row))) for row, col in points))
原理说明:
- 用生成器表达式遍历
points中的每个(row, col)元组 - 根据
swapped的布尔值,动态选择输出顺序:未交换时用(row, col),交换时用(col, row) - 把每个点的两个值转成字符串并用空格分隔,再用
'\n'把所有行拼接成一个大字符串 - 最后一次性把这个大字符串传给
print(),实现一次调用完成所有输出
这样既精简了代码,又完全满足你的需求——不用写重复的循环逻辑,只需要一次print()调用。
内容的提问来源于stack exchange,提问作者planetp
相关产品推荐
相关产品推荐

