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

时间:2020-08-31 13:03:53

标签: python loops

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

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

如何解决此问题?

3 个答案:

答案 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