如何在Windows下用Python创建命令列表并以表格形式展示
简化命令表格生成的实现方案
修复你的预想代码问题
你预想的思路是对的,但Python里集合不能包含列表(列表是可变类型,不可哈希),而且add_row的传参有误,直接传入命令项即可,不用再套一层列表。以下是修正后的可用代码:
from prettytable import PrettyTable _cmdTable = PrettyTable(["Command", "Usage"]) # 用列表的列表存储命令,新增命令直接在这加一行 commands = [ ["Help", "/help"], ["Help2", "/help 2"], ["Help3", "/help 3"] ] for cmd in commands: _cmdTable.add_row(cmd) # 直接传入cmd,它本身就是对应两列的元素序列 print(_cmdTable)
如果命令不需要修改,更推荐用元组的列表(不可变类型更安全):
commands = [ ("Help", "/help"), ("Help2", "/help 2"), ("Help3", "/help 3") ]
更简洁的替代方案:使用tabulate库
如果想进一步简化流程,可以用tabulate库,它支持直接传入命令列表和表头,无需手动循环添加行:
- 先安装库:
pip install tabulate
- 使用代码:
from tabulate import tabulate commands = [ ("Help", "/help"), ("Help2", "/help 2"), ("Help3", "/help 3") ] # 指定tablefmt为"grid"即可生成和你期望一致的格式 print(tabulate(commands, headers=["Command", "Usage"], tablefmt="grid"))
核心优化点
无论用哪个库,核心都是把所有命令集中存储在一个序列里,新增命令只需要在这个序列中添加一行,无需重复编写添加行的代码,完全符合你简化流程的需求。
内容的提问来源于stack exchange,提问作者yakubiq
相关产品推荐
相关产品推荐

