Mic*_*ael 9 list equivalent indices python-3.x
array =某种列表,包含3列和无限数量的行,其中包含数据.
Volume = array[0][2]
counter = 0
for i in array:
if Volume == array[i][2]: #<------ why is this line a problem?
counter += 1
Run Code Online (Sandbox Code Playgroud)
Pio*_*iek 11
这是一个经典的错误.i你的情况是已经从一个元素array(即另一个列表),没有的索引array(不是一个int),所以
if Volume == i[2]:
counter += 1
Run Code Online (Sandbox Code Playgroud)
请确保至少在Python教程的开头部分,因为这是非常简单和基本的东西.
另外我建议坚持命名约定:变量通常是小写的(volume不是Volume).在这种情况下i会产生误导.row或者elem会更合适.
此外,由于这种情况可能经常发生,请注意您无法访问列表切片(但您可以访问数组):
import numpy as np
integerarray = np.array([33,11,22], dtype=int)
integerlist = [33,11,22]
indexArray = [1,2,0] # or equivalently, an array, e.g. np.argsort(integerlist)
print(integerarray[indexArray]) ## works fine
print(integerlist[indexArray]) ## triggers: TypeError: list indices must be integers or slices, not list
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。我什至碰巧不得不转换为浮点数组,否则对象将保持错误的类型。
| 归档时间: |
|
| 查看次数: |
25960 次 |
| 最近记录: |