我需要生成一個帶有編號的項目列表。例如: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)]

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

倚天杖
TA貢獻1828條經驗 獲得超3個贊
這是我的方法,循環直到最后一頁并附加到列表,使用當前索引創建每個頁面:
pages=[]
pagex = "item-"
for i in range(1,last+1):
page = pagex + str(i)
pages.append(page)
添加回答
舉報
0/150
提交
取消