为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

精慕HU 2023-07-05 16:33:34
我需要生成一个带有编号的项目列表。例如: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 回答

?
蛊毒传说

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)]


查看完整回答
反对 回复 2023-07-05
?
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)]


查看完整回答
反对 回复 2023-07-05
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

你可以用Pythonic方式做到这一点:

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


查看完整回答
反对 回复 2023-07-05
?
倚天杖

TA贡献1828条经验 获得超3个赞

这是我的方法,循环直到最后一页并附加到列表,使用当前索引创建每个页面:


pages=[]

pagex = "item-"

for i in range(1,last+1):

    page = pagex + str(i)

    pages.append(page)


查看完整回答
反对 回复 2023-07-05
  • 4 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信