我试图修改字符串列表,以便元素从%23
开始在前面有元素编号。
例如:
1
变为['John', 'Eric', 'Samuel']
这是我到目前为止的代码:
['1 John', '2 Eric', '3 Samuel']
这之前添加了一个数字,但问题是它给第一个字符串数字为零,我该如何解决这个问题呢?
答案 0 :(得分:3)
您可以将i + 1
传递给format()
:
for i in range(len(rader)):
rader[i] = '{}{}{}'.format(i + 1," ",rader[i])
# ^^^^^
但是存在一种更优雅的方式:
for i, name in enumerate(rader):
rader[i] = '{} {}'.format(i + 1, name)
答案 1 :(得分:1)
您可以使用enumerate
,只需指定start
,它就会从1
开始:
rader = ['{} {}'.format(i,s) for i,s in enumerate(rader, start=1)]
如果你只是想print
那样:
print(*('{} {}'.format(i,s) for i,s in enumerate(rader, start=1)), sep=', ')
输出:
1 John, 2 Eric, 3 Samuel
答案 2 :(得分:-1)
您可以为范围函数传递其他参数,例如:
for i in range(1,len(rader))
但是对于这个解决方案,你需要重新计算其余的代码,所以它可能不是最好的主意。