我确信有一个简单的答案,但这让我很生气。我有以下代码,它应该将数字附加到两个列表(首先将它们转换为浮点数)但跳过第一行,因为它包含字符串。出于某种原因,“count”变量只保持为1,而不是增加:
gdp = []
unemp = []
data = open("C:/users/EuanRitchie/unempgdp.csv")
count = 1
for i in data:
print count
i = i.split(",")
unemp.append(i[0])
gdp.append(i[1])
if count==1:
count =+ 1
elif count>1:
unemp[i] = float(unemp[i])
gdp[i] = float(gdp[i])
我知道使用csv模块可能有更快的方法,但这也是一种做法。显然,我需要它。
答案 0 :(得分:1)
要跳过iterable的第一项,请将其转换为迭代器并迭代一次:
it = iter(data)
next(it, None) # if present, skip first item
然后使用数据
for item in it:
# whatever
或者,您可以使用enumerate
为您跟踪count
:
for count, item in enumerate(data):
if count == 0:
continue # skip first line
# whatever
答案 1 :(得分:1)
你没有递增计数。正确的语法是:
count += 1
而不是count =+ 1
(它总是将计数的值保持为1)
答案 2 :(得分:1)
忽略第一行只是读它。另外,将您的打开放在with
中,以确保其正常关闭。我不认为需要一个柜台。
with open("C:/users/EuanRitchie/unempgdp.csv") as f:
header = f.readline() #reads the first line
for line in f:
# Process the rest of the lines here
...
答案 3 :(得分:1)
有一个拼写错误:
count =+ 1
但应该是
count += 1