You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并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))

原理说明:

  1. 用生成器表达式遍历points中的每个(row, col)元组
  2. 根据swapped的布尔值,动态选择输出顺序:未交换时用(row, col),交换时用(col, row)
  3. 把每个点的两个值转成字符串并用空格分隔,再用'\n'把所有行拼接成一个大字符串
  4. 最后一次性把这个大字符串传给print(),实现一次调用完成所有输出

这样既精简了代码,又完全满足你的需求——不用写重复的循环逻辑,只需要一次print()调用。

内容的提问来源于stack exchange,提问作者planetp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:24:21