如何遍历对话列表,逐行打印时包含历史消息内容
实现逐次累加的对话消息打印
可以通过以下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
相关产品推荐
相关产品推荐

