【发布时间】:2012-02-13 00:34:47
【问题描述】:
我正在 pyschools 上解决这个问题,这让我很困惑。 代码如下:
def convertVector(numbers):
totes = []
for i in numbers:
if i!= 0:
totes.append((numbers.index(i),i))
return dict((totes))
它应该采用“稀疏向量”作为输入(例如:[1, 0, 1 , 0, 2, 0, 1, 0, 0, 1, 0])
并返回一个将非零条目映射到其索引的字典。
所以一个带有0:1、2:1 等的字典,其中x 是列表中的非零项,y 是它的索引。
所以对于示例编号,它想要这样:{0: 1, 9: 1, 2: 1, 4: 2, 6: 1}
而是给了我这个:{0: 1, 4: 2}(在变成字典之前,它看起来像这样:
[(0, 1), (0, 1), (4, 2), (0, 1), (0, 1)]
我的计划是让i 遍历numbers,创建该数字及其索引的元组,然后将其转换为字典。代码看起来很简单,我很茫然。
在我看来,numbers.index(i) 没有返回索引,而是返回了一些其他的、意想不到的数字。
我对@987654333@的理解有问题吗?是否存在已知的index 问题?
有什么想法吗?
【问题讨论】:
-
99.99999% 的情况下,如果您认为这是语言实现中的错误,那实际上是您的错。
-
99.9%的统计数据都是现场制作的!!