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

如何将带编号的列表输出为n列或表格化格式?

问题

需要将列表以2列形式展示,同时为每个列表项添加编号。现有代码已实现编号功能,但无法按预期分成2列。

现有代码

myList = ["AASD", "ASDASD", "QWEQ", "GFHG", "YUIYU", "NSDF", "LDFS", "QSDAD", "FDRT", "YSLSJ"]

count = 0
for j, i in enumerate(myList):
    count += 1
    if j%2==0:
        print('\n')
    #print(i, end= " ")             # 使用该行代码可实现2列但无编号
    print ("{} {}".format(count,i)) # 使用该行代码有编号但仅单列

当前输出

1 AASD
2 ASDASD

3 QWEQ
4 GFHG

5 YUIYU
6 NSDF

7 LDFS
8 QSDAD

9 FDRT
10 YSLSJ

期望输出

1. AASD     2. ASDASD 
3. QWEQ     4. GFHG 
5. YUIYU    6. NSDF 
7. LDFS     8. QSDAD 
9. FDRT     10. YSLSJ 
解决方案

原代码问题在于每次调用print()都会自动换行,导致每个列表项单独占一行。只需控制换行时机,并通过格式化对齐实现2列展示:

修改后的代码:

myList = ["AASD", "ASDASD", "QWEQ", "GFHG", "YUIYU", "NSDF", "LDFS", "QSDAD", "FDRT", "YSLSJ"]

for idx, item in enumerate(myList, start=1):
    # 格式化带编号的项,左对齐并预留固定宽度保证列对齐
    formatted_item = f"{idx}. {item:<10}"
    # 偶数编号项输出后换行,奇数项不换行,实现2列同行
    print(formatted_item, end="\n" if idx % 2 == 0 else "")

代码说明

  1. 使用enumerate(myList, start=1)直接从1开始生成编号,省去额外维护count变量的麻烦。
  2. f"{idx}. {item:<10}"中的<10表示将内容左对齐,占用10个字符宽度,确保同一行的两个列表项对齐整齐。
  3. 通过end参数控制换行逻辑:只有当输出偶数编号的项时才换行,奇数项保持在当前行,从而实现2列展示效果。

若列表长度为奇数,最后一个项会单独占一行,可根据实际需求调整末尾的换行逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 03:11:17