将数字附加到列表但跳过第一行:代码不起作用

时间:2015-10-29 19:18:16

标签: python

我确信有一个简单的答案,但这让我很生气。我有以下代码,它应该将数字附加到两个列表(首先将它们转换为浮点数)但跳过第一行,因为它包含字符串。出于某种原因,“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模块可能有更快的方法,但这也是一种做法。显然,我需要它。

4 个答案:

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