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

如何遍历对话列表,逐行打印时包含历史消息内容

实现逐次累加的对话消息打印

可以通过以下Python代码实现需求:

dialog_data = [('Bob', '1\n2\n3'), ('Joe', '4\n5\n6')]

for speaker, messages in dialog_data:
    # 将发言人的消息按换行分割成单独条目
    msg_list = messages.split('\n')
    # 遍历生成从1到消息总数的累加序列
    for i in range(1, len(msg_list)+1):
        # 取前i条消息,用换行拼接
        accumulated_msgs = '\n'.join(msg_list[:i])
        # 匹配示例中的格式细节
        if speaker == 'Joe' and i == 1:
            print(f"{speaker}:{accumulated_msgs}")
        else:
            print(f"{speaker}: {accumulated_msgs}")

代码说明:

  • 遍历对话数据中的每个发言人及其对应消息
  • 用split('\n')把每个发言人的多行消息拆分为独立的消息列表
  • 通过range(1, len(msg_list)+1)控制累加次数,每次截取前i条消息拼接
  • 针对示例里Joe第一条输出无空格的特殊格式做了适配,若不需要统一格式可直接用print(f"{speaker}: {accumulated_msgs}")

运行代码后会输出符合要求的逐次累加效果,切换发言人时自动重置累加序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:16:02