【发布时间】:2015-02-28 00:33:20
【问题描述】:
我正在尝试计算列表中存在多少特定字符串(在本例中为“v”)。 但是当我运行代码时,它给了我索引超出范围的错误。 列表由 line.split() 方法创建
这就是我所拥有的:
for line in open('cube.obj','r').readlines():
rawdata = line.split()[0:]
data = line.split()[1:]
obj.add_last(data)
if rawdata[0] == 'v':
v_count += 1
cube.obj 文件如下:
# cube
v 0.0 0.0 0.0
v 1.0 0.0 0.0
v 1.0 0.0 1.0
v 0.0 0.0 1.0
v 0.0 1.0 1.0
v 0.0 1.0 0.0
v 1.0 1.0 0.0
v 1.0 1.0 1.0
f 1 2 3 4
f 6 7 8 5
f 2 3 8 7
f 1 4 5 6
f 3 4 5 8
f 1 2 7 6
感谢任何帮助 谢谢!
【问题讨论】:
-
没有看到一些输入或回溯是不可能帮助的
-
如果我们知道
obj是什么以及它的add_last()方法应该做什么,那就太好了。 -
输入文件中的空行可能会出现此错误。
-
OP:您是否尝试过为此使用
collections.Counter? -
每当我删除 obj.add_last() 时,仍然会出现同样的错误。所以我认为是 if 语句造成了麻烦