循环的最后一次迭代不保存

Last iteration of loop does not save

我是 python 的新手。这是我不确定的代码部分:

i=0
while i< len(urls):
    htmlfile = urllib.urlopen(urls[i])
    htmltext = htmlfile.read()
    titles = re.findall(pattern,htmltext)
    i+=1

i=0
while i< len(titles):
    titles[i] = titles[i].translate(None, 'absdefghijklmnopqEUR rstuvwxyz;&£')
    i+=1

goldah = []

i=0
while i< len(titles):
    titles = map(float, titles)
    goldah = titles[i] * exchange
    goldah = "%.2f" % goldah
    print goldah
    i+=1

输出

2.87
4.31
5.75
7.19
8.62
10.06
11.50
12.94
14.37
17.25
20.12
23.00
25.87
28.75
34.50
43.12
57.50
86.24
114.99
143.75
172.50
229.99
287.49
344.99
431.24

仅保存一个或所有这些循环的最后一次迭代。因此,当我稍后尝试在代码中调用变量 goldah 时,如下所示: goldah[2] 它没有给我列表中的第二个值,而是给了我最后一个值的第二个字符。抱歉,我是 python.

的新手

您必须将最后一部分更改为

goldah = []

i=0
while i< len(titles):
    titles = map(float, titles)
    goldahtemp = titles[i] * exchange
    goldahtemp = "%.2f" % goldahtemp
    print goldahtemp
    goldah.append(goldahtemp)
    i+=1

那是因为您在每次迭代中都在更改 goldah 的值,而不是实际存储它。您将不得不使用临时变量并将结果附加到列表中。