首页 > 解决方案 > 如何修复“列表索引必须是整数或切片,而不是列表”错误?

问题描述

我正在尝试学习 numpy,而我刚刚学习了精美的索引和 argsort。为了习惯这两个,我写了简单的代码,我不断收到错误

'TypeError: list indices must be integers or slices, not list'

这是什么原因造成的?

import numpy as np
array = ['John','Mike','Sarah','Kate','Samuel']
score_array = [78, 95, 84, 98, 88]
idx = np.argsort(score_array)
idx = idx.tolist()
array[idx]

标签: pythonarraysnumpyindexing

解决方案


我不确定你想做什么。如果将两个列表转换为 numpy 数组。它运行没有错误。

import numpy as np

array = np.array(['John','Mike','Sarah','Kate','Samuel'])
score_array = np.array([78, 95, 84, 98, 88])
idx = np.argsort(score_array)
idx = idx.tolist()
print(array[idx])

因为array现在是一个 numpy 数组,所以它接受数组样式索引。


推荐阅读