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

如何修改Python代码实现三个列表内容分行打印?

解决Python send_email函数列表内容分行打印问题

你的原代码问题在于只是把所有元素直接拼接成字符串,既没给元素之间加逗号分隔,也没在每个列表结束后添加换行符,所以输出会是123456789这种连在一起的结果。下面提供两种修改方案:

方案一:用join方法简洁实现(推荐)

直接利用Python的字符串join方法,一步完成元素转字符串、逗号分隔、列表间换行的需求,代码更简洁高效:

def send_email():
    mylist1 = [1,2,3]
    mylist2 = [4,5,6]
    mylist3 = [7,8,9]

    # 把每个列表转成逗号分隔的字符串,再用换行符连接所有列表结果
    body = '\n'.join([
        ','.join(map(str, mylist1)),
        ','.join(map(str, mylist2)),
        ','.join(map(str, mylist3))
    ])

    print(body)

send_email()
  • map(str, mylist):把列表里的每个数字转成字符串类型
  • ','.join(...):用逗号把列表元素的字符串连接起来
  • '\n'.join(...):用换行符把三个列表的结果连接成最终的body字符串

方案二:保留循环逻辑修改

如果你想保留原有的循环写法,需要在元素间添加逗号,并在每个列表处理完后添加换行:

def send_email():
    mylist1 = [1,2,3]
    mylist2 = [4,5,6]
    mylist3 = [7,8,9]

    body = ''

    # 处理第一个列表
    for idx, item in enumerate(mylist1):
        body += str(item)
        # 不是最后一个元素就加逗号
        if idx != len(mylist1) - 1:
            body += ','
    body += '\n'  # 列表结束加换行

    # 处理第二个列表
    for idx, item in enumerate(mylist2):
        body += str(item)
        if idx != len(mylist2) - 1:
            body += ','
    body += '\n'

    # 处理第三个列表
    for idx, item in enumerate(mylist3):
        body += str(item)
        if idx != len(mylist3) - 1:
            body += ','

    print(body)

send_email()
  • enumerate用来获取元素的索引,判断是否为列表最后一个元素,避免在末尾多加逗号
  • 每个列表处理完成后添加'\n'实现换行效果

两种方案运行后都能得到你想要的输出:

1,2,3
4,5,6
7,8,9

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:31:17