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']]
添加回答
舉報