【问题标题】:index out of range python索引超出范围python
【发布时间】:2014-11-02 20:13:21
【问题描述】:

我正在尝试使用元组编写一个非常简单的程序。这在大多数情况下都有效,但我无法通过访问元组中的单个元素来真正让它工作。 我从包含一些信息的文件中获取输入,将其转换为元组并将数据存储在其他文件中。

如果我写所有数据或只写第一个元组,它会起作用,但在任何其他情况下都不会。以下是代码

filename = "in.txt"
stock_market = []
for line in open(filename):
    fields = line.split(",")
    name = fields[0]
    shares = int(fields[1])
    stock = (name,shares)
    portfolio.append(stock)
    f = open("output.txt","w")
    print >>f, portfolio[1]
    f.close()

【问题讨论】:

  • 显示实际的回溯,或者至少告诉我们错误在哪一行。如果没有您的数据文件样本,我们无法自行复制。
  • 这是您的实际代码吗? stock_market 从未使用过,portfolio 从未初始化。另外,print >>f, portfolio[1]相当于“将portfolio的第二个元素的内容写入文件”。当portfolio 的元素少于两个时会发生什么?请记住,[(a,b)] 列表的长度为 1。
  • 你为什么要为输入的每一行打开和关闭output.txt? (另外,你是故意每次都截断输出,还是要以"a"模式打开文件?)

标签: python file indexing tuples


【解决方案1】:

如果不先定义,您不能附加到投资组合。试试这样的:

inFilename = "in.txt"
outFilename = "output.txt"
with open(inFilename, 'r') as inf:
    with open(outFilename, 'w') as outf:
        for line in inf:
            fields = line.split(',')
            print >>outf, (fields[0], fields[1])

【讨论】:

    猜你喜欢
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2016-04-17
    • 2016-07-21
    相关资源
    最近更新 更多