我需要生成一个带有编号的项目列表。例如:item-1item-2item-3..item 246234我正在尝试用 while 循环来解决它。这是我的代码:pages = []page = 'item-'nr = 1last = 10while nr <= last page = page + str(nr) pages.append(page) nr += 1但我得到的不是期望的结果:item-1item-12item-123item-1234and so on我该如何解决这个问题?
4 回答
![?](http://img1.sycdn.imooc.com/5458502c00012d4a02200220-100-100.jpg)
蛊毒传说
TA贡献1895条经验 获得超3个赞
您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)]
![?](http://img1.sycdn.imooc.com/5458643d0001a93c02200220-100-100.jpg)
UYOU
TA贡献1878条经验 获得超4个赞
当您说page = ...
您要覆盖每次使用的原始“模板”时。只需使用不同的变量:
while nr <= last: current_page = page + str(nr) pages.append(current_page) nr += 1
顺便说一句,这在惯用的 python 中表达得更清楚,如下所示:
pages = [f"item-{i}" for i in range(1, 11)]
![?](http://img1.sycdn.imooc.com/545868c20001b8c402200220-100-100.jpg)
倚天杖
TA贡献1828条经验 获得超3个赞
这是我的方法,循环直到最后一页并附加到列表,使用当前索引创建每个页面:
pages=[]
pagex = "item-"
for i in range(1,last+1):
page = pagex + str(i)
pages.append(page)
添加回答
举报
0/150
提交
取消