首页 > 解决方案 > 在while循环Python中将数字添加到字符串的问题

问题描述

我需要生成带有编号的项目列表。例如:

item-1
item-2
item-3
..
item 246234

我试图用一个while循环来解决它。这是我的代码:

pages = []
page = 'item-'
nr = 1
last = 10
while nr <= last
    page = page + str(nr)
    pages.append(page)
    nr += 1

但我得到的不是预期的结果:

item-1
item-12
item-123
item-1234
and so on

我该如何解决这个问题?

标签: pythonloops

解决方案


page在每次迭代中累积数字。在循环中使用另一个变量名:

while nr <= last
    pageX = page + str(nr)
    pages.append(pageX)
    nr += 1

或者直接将页面添加到列表中,没有中间变量:

while nr <= last:
    pages.append(page + str(nr))
    nr += 1

或者使用for循环,这样您就不必自己检查和增加数字:

for nr in range(1, last+1):
    pages.append(page + str(nr))

或列表理解以使整个代码更短并且(恕我直言)更具可读性:

pages = ["item-" + str(nr) for nr in range(1, last+1)]

推荐阅读