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

How to print out a numbered list in Python 3

如何打印每个 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

我需要知道的是如何让这些数字与我要打印的内容一起显示?我可以毫无问题地打印出 a-e,但我不知道如何给列表编号。

for a, b in enumerate(blob, 1):
    print '{} {}'.format(a, b)

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

这是您的工作代码示例:

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

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

enumerate 函数将在每个循环中为变量 number 提供变量 letter 在列表中的位置。

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

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

编辑:如果您需要额外的 space:

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

你可以用这个单线

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)

One-liner 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