2 回答

TA贡献1744条经验 获得超4个赞
尝试这个:
import csv
with open('Data.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=' ')
tickerinfo= [[row[0].zfill(5), row[1]] for row in readCSV]
您的代码工作正常,唯一的小问题是您ticker在结果中附加了三遍,首先,迭代代码将是,['0001', 'ABC']但是当您更改时,ticker您将更改ticker已添加到结果中的内容,以便您更好地理解print(tickerinfo)在循环中添加, 你会得到 :
[['00001', 'ABC']]
[['00002 ', 'CDE'], ['00002 ', 'CDE']]
[['00003', 'FGH'], ['00003', 'FGH'], ['00003', 'FGH']]
所以为了修复你的代码,你可以使用copy或[:]喜欢这样的:
tickerinfo.append(ticker[:])
或者
from copy import copy
tickerinfo.append(ticker.copy())

TA贡献1827条经验 获得超8个赞
您正在使用delimiter=','但 csv 文件由' '(空格)分隔,因此将分隔符更改为delimiter=' '. 你可以这样做:
import csv
ticker_info = []
with open('Data.csv', 'r') as f:
reader = csv.reader(f, delimiter=' ')
for i in reader:
# use zfill if you want more zeros
ticker_info.append( [i[0].zfill(5), i[1]] )
print(ticker_info) // result [['00001', 'ABC'], ['00002', 'CDE'], ['00003', 'FGH']]
添加回答
举报