如何在Python 3中打印出编号列表

时间:2015-04-22 23:56:05

标签: python list numbers integer python-3.4

如何打印每个python列表的索引位置,使其从1开始,而不是0.这里是我想要它的概念:

    blob = ["a", "b", "c", "d", "e", "f"]
    for i in blob:
        print(???)

输出:

1   a
2   b
3   c
4   d
5   e

我需要知道的是,如何将这些数字与我正在尝试打印的内容一起显示出来?我可以打印出来没有问题,但我无法弄清楚如何编号列表。

4 个答案:

答案 0 :(得分:6)

您需要枚举您的列表。这意味着对于每个字母,它都有一个相应的数字。

以下是您的工作代码示例:

blob = ["a", "b", "c", "d", "e", "f"]

for number, letter in enumerate(blob):
    print(number, letter)

enumerate函数会在每个循环中为变量number赋予变量letter的位置。

要显示它们,您只需使用print(number, letter)并排显示它们。

答案 1 :(得分:0)

使用内置操作的另一种解决方案:

编辑:如果您需要额外的空间:

s1 = ['a', 'b', 'c', 'd']
for i in s1:
    print(s1.index(i) +1, end=' ')
    print(" ",i)

输出:

1   a
2   b
3   c
4   d

答案 2 :(得分:0)

您可以使用这种单线。

print(list(enumerate(blob)))

从索引1开始

print(list(enumerate(blob, start=1)))

以上代码将在一行中全部打印。如果要在换行中打印每个元素

from pprint import pprint  # no install required
pprint(list(enumerate(blob, start=1)), depth=2)

答案 3 :(得分:0)

enumerate对象的单线漂亮打印:

myList = ['a', 'b', 'c']
print(*enumerate(myList), sep='\n')

输出:

(0, 'a')
(1, 'b')
(2, 'c')

如果要控制输出格式,请使用此格式(具有自己的格式):

print('\n'.join(['{}-{}'.format(i, val) for i, val in (enumerate(myList))]))

输出:

0-a
1-b
2-c