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

如何在print()中为两个解包列表添加分隔内容并简化写法?

问题:如何用更简洁优雅的方式一次print()输出排序和反转后的列表?

我有一个整数列表,需要通过一次print()调用,按照以下模板(两个输出间用'\n'分隔)打印排序后的列表和反转后的列表:

*sorted(lst)
*reversed(lst)

由于使用了解包列表,无法使用sep参数或f-string,目前的暴力实现方法如下:

int_lst = [4, 5, 2, 1]
lst = sorted(int_lst)
print(" ".join(str(i) for i in lst) + "\n" + " ".join(str(j) for j in reversed(lst)))

输出结果:

1 2 4 5
5 4 2 1

请问有没有更简洁优雅的实现方式?


几种简洁实现方案:

  • 方案1:利用print多参数+sep分隔
    把两行格式化后的字符串作为print的参数,用sep='\n'自动分隔,避免手动拼接字符串,同时用map(str, ...)简化类型转换:

    int_lst = [4, 5, 2, 1]
    sorted_lst = sorted(int_lst)
    print(' '.join(map(str, sorted_lst)), ' '.join(map(str, reversed(sorted_lst))), sep='\n')
    
  • 方案2:生成行列表后拼接打印
    先将两行内容存入列表,再用'\n'连接后一次性打印,逻辑清晰且代码紧凑:

    int_lst = [4, 5, 2, 1]
    sorted_lst = sorted(int_lst)
    print('\n'.join([
        ' '.join(map(str, sorted_lst)),
        ' '.join(map(str, reversed(sorted_lst)))
    ]))
    
  • 方案3:两次print调用(简洁替代)
    如果可以接受两次print调用,这种写法最直观,直接解包列表并控制分隔符和换行:

    int_lst = [4, 5, 2, 1]
    sorted_lst = sorted(int_lst)
    print(*sorted_lst, sep=' ')
    print(*reversed(sorted_lst), sep=' ')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:05:09