我对Python和编程还不熟悉。我在做Pyschool练习第8题第11题关于将字典转换为备用向量机。在
我被要求写一个函数,将字典转换回它的sparese向量表示。在
示例
>>> convertDictionary({0: 1, 3: 2, 7: 3, 12: 4})
[1, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 4]
>>> convertDictionary({0: 1, 2: 1, 4: 2, 6: 1, 9: 1})
[1, 0, 1, 0, 2, 0, 1, 0, 0, 1]
>>> convertDictionary({})
[]
我试过很多次。以下是我的最新代码:
^{pr2}$返回的错误是:
Traceback (most recent call last):
File "Code", line 8, in convertDictionary
IndexError: list assignment index out of range
有人能帮我吗?非常感谢你!在
这样的话就足够了:
翻译成一个简单的旧for循环
^{pr2}$get
方法允许您提供一个默认值作为第二个参数,以防密钥丢失。一旦你得到更多的进展,你可以使用defaultdict
Edit:
max
的默认参数需要Python>;3.4。如果您有早期版本,您可以使用异常处理(通常首选)或显式检查空字典来处理这种情况。在您的代码在逻辑上运行得很好,但是存在缩进问题。你的职能应该是:
问题是你的第二个
for
在第一个里面。您需要的是用max(k)
元素构建一个列表,然后将正确的值放入其中。然后,两个for
循环应该是一个接一个,而不是一个在另一个内部。在相关问题 更多 >
编程相关推荐