我需要生成带有编号的项目列表。例如:
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
如何解决此问题?
答案 0 :(得分:4)
您的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))
或者通过列表理解使整个代码更短并且(IMHO)更具可读性:
pages = ["item-" + str(nr) for nr in range(1, last+1)]
答案 1 :(得分:2)
您说DECLARE @NewLineChar AS CHAR(2) = CHAR(13) + CHAR(10)
select customer_id,customer_name from customer where customer_id='Customer' + @NewLineChar;
时,将覆盖您每次使用的原始“模板”。只需使用其他变量即可:
page = ...
顺便说一下,这在惯用的python中更清楚地表示如下:
while nr <= last:
current_page = page + str(nr)
pages.append(current_page)
nr += 1
答案 2 :(得分:1)
您可以用pythonic方式做到这一点:
dualstack