私は2つの文字列(['cat1'のようなもの)からなる行エントリのリストを生成する.csvファイルから2列の値を読み込みます「DOG1」])Pythonリスト.extendメソッドは、文字列に文字列を分割します
私は私が一種の、このように、他のすべての1つのリストで「猫」と「犬」を配置しようと抽出された全ての行を反復処理:
for row in csv_file_entries:
catlist.extend(row[0])
doglist.extend(row[1])
ドッグリストは次のようになります:
['dog1'、 'dog2'、 'dog3'、 'dog4'、... dogN]
代わりに私が手
[ 'D'、 'O'、 'G'、 '1'、 ''、 'C'、 ''、 '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()'は、各項目をシーケンスに追加します。文字列は一連の文字です。 1つの項目として追加する場合は、 '.append()'を使用します。 – zondo
はい - 私は.appendと.extendをチェックしたと思ったが、明らかにそうではなかった。また、私の2つのリストA = B = []の私の初期化が、私のエントリーの混合を引き起こしていたことがわかった。すべてが修正されています。みんな、ありがとう。 –