在Python while循环中向字符串添加数字的问题

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


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

我该如何解决这个问题?


精慕HU
浏览 181回答 4
4回答

蛊毒传说

您page在每次迭代中累积数字。在循环内使用另一个变量名称:while nr <= last&nbsp; &nbsp; pageX = page + str(nr)&nbsp; &nbsp; pages.append(pageX)&nbsp; &nbsp; nr += 1或者直接将页面添加到列表中,无需中间变量:while nr <= last:&nbsp; &nbsp; pages.append(page + str(nr))&nbsp; &nbsp; nr += 1或者使用for循环,这样您就不必自己检查和增加数字:for nr in range(1, last+1):&nbsp; &nbsp; pages.append(page + str(nr))或者使用列表理解来使整个代码更短并且(恕我直言)更具可读性:pages = ["item-" + str(nr) for nr in range(1, last+1)]

UYOU

当您说page = ...您要覆盖每次使用的原始“模板”时。只需使用不同的变量:while&nbsp;nr&nbsp;<=&nbsp;last: &nbsp;&nbsp;&nbsp;&nbsp;current_page&nbsp;=&nbsp;page&nbsp;+&nbsp;str(nr) &nbsp;&nbsp;&nbsp;&nbsp;pages.append(current_page) &nbsp;&nbsp;&nbsp;&nbsp;nr&nbsp;+=&nbsp;1顺便说一句,这在惯用的 python 中表达得更清楚,如下所示:pages&nbsp;=&nbsp;[f"item-{i}"&nbsp;for&nbsp;i&nbsp;in&nbsp;range(1,&nbsp;11)]

蓝山帝景

你可以用Pythonic方式做到这一点:pages&nbsp;=&nbsp;['item-'+str(nr)&nbsp;for&nbsp;nr&nbsp;in&nbsp;range(1,&nbsp;last+1)]

倚天杖

这是我的方法,循环直到最后一页并附加到列表,使用当前索引创建每个页面:pages=[]pagex = "item-"for i in range(1,last+1):&nbsp; &nbsp; page = pagex + str(i)&nbsp; &nbsp; pages.append(page)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python