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

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/

10-14 13:40
查看更多