如何在Prolog中按指定格式输出特定结构列表?
实现指定格式输出的替代方法
我有如下列表:
Sorted = [p(201, 15, 2), p(301, 15, 3), p(401, 30, 4), p(501, 75, 5)]
希望按以下格式输出:
201 15 2 301 15 3 401 30 4 501 75 5
我已经用过display(Sorted),请问还有其他函数可以实现这个需求吗?
几种实用的替代方案:
循环直接打印
遍历列表中的每个p元素,提取内部参数后格式化输出。如果p是可索引的结构(比如元组、列表),直接通过下标取值;如果是自定义类,替换为对应属性名即可:for elem in Sorted: # 假设p是可索引结构,如元组 print(f"{elem[0]} {elem[1]} {elem[2]}") # 若p是类,比如属性为num1, num2, num3,则改为: # print(f"{elem.num1} {elem.num2} {elem.num3}")批量拼接后打印
用生成器表达式把每个元素转为空格分隔的字符串,再用换行符连接后一次性输出,效率更高:print('\n'.join(f"{x[0]} {x[1]} {x[2]}" for x in Sorted))借助
pprint模块
如果需要更规整的结构化输出,pprint模块可以配合自定义处理实现需求:from pprint import pprint pprint([f"{x[0]} {x[1]} {x[2]}" for x in Sorted], width=20)
内容的提问来源于stack exchange,提问作者elfii
相关产品推荐
相关产品推荐

