Получение пустых списков - понятия не имею, почему? - PullRequest
2 голосов
/ 09 сентября 2011

Я использую этот код:

from __future__ import division
from __future__ import print_function

in_file = open("s:/Personal Folders/Andy/Python Projects/People Cancelled/Analyze Authorize Truncated.csv")
text = in_file.readlines()
in_file.close()

header = text[0:1]
text = text[1:]

for index, line in enumerate(text):
    text[index] = line.split(",")

name = text
dates = text

for index, line in enumerate(name):
    name[index] = line[3:5]

for stuff, area in enumerate(dates):
     dates[stuff] = area[7:8]

print(name)
print(dates)

И я получаю этот вывод:

 [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]
 [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]

Есть идеи почему?По какой-то причине между двумя циклами for, похоже, существуют какие-то помехи - если я сделаю это по отдельности, то получу желаемый результат.

Спасибо!

1 Ответ

1 голос
/ 09 сентября 2011

Посмотрите на эти две строки:

name = text
date = text

Эти строки не делают копии текста для имени и даты для указания;скорее, они устанавливают и имя, и дату, чтобы по сути быть альтернативными именами для текста.Итак, после третьего цикла for (с телом name[index] = line[3:5] каждая строка в text имеет длину два элемента (потому что text и name - это один и тот же список). На самом деле, я даже не понимаю, почему выПервоначально установите name и date равными text; ожидаемых результатов можно достичь, просто сделав name и date равными новым, пустым спискам и добавив к ним элементы на основе text.

...