【发布时间】:2017-07-04 04:57:54
【问题描述】:
我试图通过将一个字典键和一个 numpy 数组拼接在一起变成一个列表来创建一个新的元组。但是,我收到此错误
TypeError: list indices must be integers, not tuple
这是我的代码
import numpy
import random
print(ly)
{(1, 3): 2, (5, 2): 1, (10, 1): 0}
def myFun(layout):
possibilities = numpy.zeros(shape=(4,2))
possibilities[0] = [1, 0]
possibilities[1] = [-1, 0]
possibilities[2] = [0, 1]
possibilities[3] = [0, -1]
newLayout = tuple()
for i in layout:
randomDirection = random.choice( possibilities )
newLayout = newLayout + layout.keys()[i] + list(randomDirection)
解释器显示这一行
newLayout = newLayout + layout.keys()[i] + list(randomDirection)
有问题,但我不明白为什么
【问题讨论】:
-
我假设
ly以layout的形式传入。ly的键是元组,所以for i in layout意味着i是tuple,你不能用tuple索引list。注意:Py3 中的layout.keys()不再返回list,即使i是int也会中断。 -
你的字典键是元组,你正在循环它们,所以
i的类型肯定是tuple -
您能否分享所需的输出。
标签: python numpy dictionary tuples