我有一个2D列表,我正在尝试检索一个索引指定为参数的列(类型:IntEnum
)。
在尝试检索除索引0
处的列以外的任何列时,我会遇到index out of bounds
错误。你知道吗
枚举:
class Column(IntEnum):
ROAD = 0
SECTION = 1
FROM = 2
TO = 3
TIMESTAMP = 4
VFLOW=5
class TrafficData:
data=[[]]
以下是TrafficData的成员方法
读取文件并存储矩阵:
def __init__(self,file):
self.data=[[word for word in line.split('\t')]for line in file.readlines()[1:]]
检索所需列:
def getColumn(self,columnName):
return [line[columnName] for line in self.data]
呼叫: )你知道吗
column1 = traficdata.getColumn(columnName=Column.ROAD)
`column2 = traficdata.getColumn(columnName=Column.FROM)` //error
`column3 = traficdata.getColumn(columnName=Column.TO)` //error
[
我测试了您上面提供的代码,没有发现任何问题。这让我相信文件中的数据可能有问题。你能粘贴文件数据吗?(制表符分隔的数据)
更新- 我发现了这个问题-正如所怀疑的,这是一个数据问题(也涉及到一个小的代码更新)。进行以下更改-
1)打开文件时使用适当的编码,我使用utf-16。你知道吗
2)在共享的数据文件的末尾,它包含文本-“(72413行受影响)”以及两个新行字符。因此,您有两个选项,要么手动清理数据文件,要么更新代码以忽略“(72413行受影响)”&;“\n”字符。你知道吗
希望有帮助。你知道吗
相关问题 更多 >
编程相关推荐