本问题已经有最佳答案,请猛点这里访问。
我每次一行从.csv文件中读取两列值,这将生成由两个字符串组成的行条目列表(类似于['cat1', 'dog1'])
当我遍历我提取的所有行时,我试着把所有的"猫"放在一个列表中,把"狗"放在另一个列表中,就像这样:
1 2 3 | for row in csv_file_entries: catlist.extend(row[0]) doglist.extend(row[1]) |
我希望doglist是:
['dog1', 'dog2', 'dog3', 'dog4',…dogN]
但是我得到
[' d ', ' o ', ' g ', ' 1 ', ' ', ' c ', ' ', ' t ', ' 1 ', ' ',…)等
我怀疑,当我发现为什么字符是列表元素而不是字符串时,我还会发现为什么猫和狗在同一个列表中,即使行元素0是狗,行元素1是猫。
我的实际代码,与愚蠢的调试语句如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 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) |
这是我的第一个问题,所以修改我的表格不要觉得不好意思。
这里更容易使用