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

数独游戏开发:如何紧凑使用列表格式化字符串(无需逐个索引)

数独网格格式化的紧凑实现方案

直接解决方法

你不需要逐个列出索引,只需要把列表解包为格式化操作符所需的参数即可。Python的字符串%操作符接受元组作为参数,因此可以直接将列表转为元组,或者用*语法解包列表元素:

修改后的代码:

values =[" ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", "9", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",
         " ", " ", " ", " ", " ", " ", " ", " ", " ",]

template = """
%s %s %s | %s %s %s | %s %s %s
%s %s %s | %s %s %s | %s %s %s
%s %s %s | %s %s %s | %s %s %s
--------   --------   --------
%s %s %s | %s %s %s | %s %s %s
%s %s %s | %s %s %s | %s %s %s
%s %s %s | %s %s %s | %s %s %s
--------   --------   --------
%s %s %s | %s %s %s | %s %s %s
%s %s %s | %s %s %s | %s %s %s
%s %s %s | %s %s %s | %s %s %s
"""

# 两种写法二选一
outGrid = template % tuple(values)
# Python3.5及以上版本支持的简化写法
outGrid = template % (*values,)

进阶:动态生成模板(可选)

如果不想手动编写81个%s,可以动态生成模板字符串,进一步简化代码:

# 生成单行的格式模板:三组各3个%s,用|分隔
row_template = " ".join(["%s"]*3) + " | " + " ".join(["%s"]*3) + " | " + " ".join(["%s"]*3)
# 拼接完整的数独网格模板:3行+分隔线+3行+分隔线+3行
full_template = "\n".join([row_template]*3) + "\n--------   --------   --------\n" + \
                "\n".join([row_template]*3) + "\n--------   --------   --------\n" + \
                "\n".join([row_template]*3)

outGrid = full_template % tuple(values)

这种写法既避免了逐个索引的繁琐,也不用手动输入大量重复的%s,代码可读性和维护性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:05:38