【问题标题】:Getting Blank Lists - No Idea Why?获取空白列表 - 不知道为什么?
【发布时间】:2011-09-08 20:25:30
【问题描述】:

我使用这个代码:

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

谢谢!

【问题讨论】:

  • 你能给我们举一个你输入数据的例子吗?

标签: python list for-loop enumerate


【解决方案1】:

看看这两行:

name = text
date = text

这些行复制文本以供名称和日期指向;相反,他们将 name 和 date 设置为实质上是文本的替代名称。所以,在第三个 for 循环之后(带有主体 name[index] = line[3:5]text 中的每一行都是两个项目长(因为 textname 是同一个列表)。事实上,我什至不明白为什么你最初将namedate 设置为等于text;只需将namedate 设置为新的空列表并根据text 将项目附加到它们即可实现预期结果。

【讨论】:

  • 啊,这有道理!我必须弄清楚如何将旧列表中的值附加到新列表中,但这应该不会太难。实际上,我也可以截取一段文本(即 text[:]),它应该可以工作
  • 列表有一个方法append - 看起来应该是完美的。或者,您可以使用列表推导根据旧列表定义新列表,例如 name = [line[3:5] for line in text]
猜你喜欢
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多