Python 向字符串列表中添加数字
我正在尝试修改字符串列表,以便元素的前面有从Python 向字符串列表中添加数字,python,string,list,python-3.x,Python,String,List,Python 3.x,我正在尝试修改字符串列表,以便元素的前面有从1开始的元素编号 例如: for i in range(1,len(rader)) ['John','Eric','Samuel']变成了['1john','2eric','3samuel'] 以下是我目前掌握的代码: for i in range(len(rader)): rader[i] = '{}{}{}'.format(i," ",rader[i]) 这会在前面添加一个数字,但问题是它会将第一个字符串的数字设为零,如何解决此问题?
1
开始的元素编号
例如:
for i in range(1,len(rader))
['John','Eric','Samuel']
变成了['1john','2eric','3samuel']
以下是我目前掌握的代码:
for i in range(len(rader)):
rader[i] = '{}{}{}'.format(i," ",rader[i])
这会在前面添加一个数字,但问题是它会将第一个字符串的数字设为零,如何解决此问题?您可以为范围函数传递其他参数,例如:
for i in range(1,len(rader))
但是对于这个解决方案,您需要重新计算其余的代码,所以这可能不是最好的主意 您可以将
i+1
传递到format()
:
但还有一种更优雅的方式:
for i, name in enumerate(rader):
rader[i] = '{} {}'.format(i + 1, name)
您可以使用,只需指定start
,它将从1
开始:
rader = ['{} {}'.format(i,s) for i,s in enumerate(rader, start=1)]
如果你只是想这样做:
print(*('{} {}'.format(i,s) for i,s in enumerate(rader, start=1)), sep=', ')
输出:
1 John, 2 Eric, 3 Samuel
真的吗<代码>格式(i+1,“,rader[i])。。。Python使用基于零的数组和范围,这些数组和范围将跳过第一个数组和范围element@kdopen:是的,它不适用于代码的其余部分,但我想说明可以使用一些附加参数调用范围函数。