python - 在多列中打印枚举列表

标签 python multiple-columns enumerate

我想在用户指定的列中打印枚举列表。

import random

lst = random.sample(range(100), 30)
counter = 0

for pos, num in enumerate(sorted(lst)):
    if counter % 2 == 0:
        print '(%s) %s' %(pos, num),
        counter = counter + 1
    else:
        print '(%s) %s'.rjust(16) %(pos, num)
        counter = counter + 1

这给出:

(0) 3          (1) 6
(2) 7          (3) 10
(4) 11          (5) 13
(6) 17          (7) 18
(8) 20          (9) 25
(10) 45          (11) 46
(12) 48          (13) 51
(14) 58          (15) 59
(16) 60          (17) 63
(18) 68          (19) 69
(20) 77          (21) 81
(22) 83          (23) 84
(24) 87          (25) 89
(26) 93          (27) 94
(28) 97          (29) 98

如何打印一个列表,其中前 15 个数字在第一列,后 15 个在第二列?我见过一些示例,其中 range(start, stop, step) 已被用于创建子列表并且结果行已被打印,但我将不得不丢失枚举并只打印数字。

最佳答案

您问题的“用户指定”部分很棘手。用户如何在每一列中指定他们想要的内容?他们可以指定多于两列吗?等

但是,如果您知道您有 30 个项目,并且您知道您想要第一列中的前 15 个项目和第二列中的接下来的 15 个项目,我相信以下方法可以解决问题:

for i in xrange(15):
    first = '(%s) %s' % (i, lst[i])
    padding = ' ' * (30 - len(first))
    second = '(%s) %s' % (i + 15, lst[i + 15])
    print '%s%s%s' % (first, padding, second)

关于python - 在多列中打印枚举列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18047232/

相关文章:

python - python 中的名称错误(类)

html - 等高列仅适用于 Chrome

获取枚举最后一个索引值的Pythonic方法

Python:如何做嵌套枚举for循环?

python - 将字典的键值对分配用作 for 循环中的迭代器

python - 重载实例[key] += val

python - 定义要在 python 中动态创建的 __repr__(self)

python - 无法在keras中执行plot_model

list - 多列问题 (CSS3)

linux - 合并两个文件的列,但将第二个文件的列插入到第一个文件的列中