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