1
我一次讀取一行.csv文件中的兩列值,這會產生一個由兩個字符串組成的行條目列表(類似['cat1' 「DOG1」])Python list .extend方法將字符串分解爲字符
當我遍歷我提取我試圖把在一個列表中所有的「貓」和「狗」在另一個,有點像這樣的所有行:
for row in csv_file_entries:
catlist.extend(row[0])
doglist.extend(row[1])
我期望doglist是:
['dog1','dog2','dog3','dog4',...,dogN]
而是我得到
[ 'd', '0', 'G', '1', '', 'C', 'A', 'T', '1', '', ...]等ETC
我懷疑當我找出爲什麼字符是列表元素,而不是字符串我還會找出爲什麼貓和狗是在同一個列表中,即使行元素0是狗行元素1是貓。
我實際的代碼,用愚蠢的調試語句低於:
# get csv file containing digitized EOT data
# first column is day of year, second is EOT minutes
# taken from US Naval Obs site and digitized with web digitizer program
fname = 'C:\\time_calculator\\EOT.csv'
dtzd_DOY = dtzd_EOT = []
print("tarrtart", dtzd_DOY)
with open(fname, 'rt') as csvfile:
eot_entries = csv.reader(csvfile, delimiter=',')
# print(eot_entries)
print("pooooty", dtzd_DOY, dtzd_EOT)
for row in eot_entries:
print(row, row[0], row[1])
thisDOY = row[0]
thisEOT = row[1]
print(thisDOY)
print(thisEOT)
# thisEOT = "heychittyfgfgfttrgrtfgrt"
dtzd_DOY.extend(thisDOY)
dtzd_EOT.extend(thisEOT)
print(dtzd_DOY, dtzd_EOT)
這是我的第一個問題,所以不要覺得不好糾正我的形式。
'.extend()'在序列中添加每個項目。一個字符串是一系列字符。如果你想添加它作爲一個項目,使用'.append()'。 – zondo
是的 - 我以爲我檢查過.append與.extend,但顯然不是。此外,發現我的兩個列表A = B = []的初始化是導致我混合條目的原因。所有都是固定的。感謝大家。 –