2

我使用这段代码:

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 循环之间似乎存在某种干扰 - 如果我单独执行任何一个,我都会得到我想要的结果。

谢谢!

4

1 回答 1

1

看看这两行:

name = text
date = text

这些行不会复制要指向的名称和日期的文本;相反,他们将 name 和 date 设置为实质上是文本的替代名称。因此,在第三个 for 循环之后(使用 body name[index] = line[3:5],其中的每一行text都是两个项目长(因为textname是同一个列表)。事实上,我什至不明白为什么你最初设置两者namedate等于text;预期的结果可能是简单地通过创建namedate等于新的空列表并基于text.

于 2011-09-08T20:30:26.530 回答