Метод Python list.extend разбивает строку на символы [дубликат]Python

Программы на Python
Ответить
Anonymous
 Метод Python list.extend разбивает строку на символы [дубликат]

Сообщение Anonymous »

Я считываю два столбца значений из CSV-файла построчно, что дает список записей строк, состоящий из двух строк (что-то вроде ['cat1', 'dog1'])
Когда я перебираю все извлеченные строки, я пытаюсь поместить всех «кошек» в один список, а «собак» в другой, примерно так:
for row in csv_file_entries:
catlist.extend(row[0])
doglist.extend(row[1])

Я ожидаю, что список собак будет следующим:
['dog1', 'dog2', 'dog3', 'dog4', ..., dogN]

но вместо этого я получаю
['d', 'o', 'g', '1', ' ', 'c', 'a', 't', '1', ' ', ...]

Я подозреваю, что когда я выясню, почему символы являются элементами списка, а не строками, я также выясню, почему кошки и собаки находятся в одном списке, хотя элементы строки 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)


Подробнее здесь: https://stackoverflow.com/questions/435 ... characters
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»