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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:54:27