我是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的新手。
答案 0 :(得分:1)
您必须将最后一部分更改为
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
的值而不是实际存储它。您必须使用临时变量并将结果附加到列表中。