私はPythonの初心者で一般的なプログラミングです。私はPyschoolの練習問題Top 8、Q 11をスペアVectoreに変換していました。Python:Spare Vectorの辞書
私は、辞書をその派閥ベクトル表現に戻す変換関数を書くように求められました。
例
>>> 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({})
[]
私は何度も試みてきました。以下は、私が持っている最新のコードされています
def convertDictionary(dictionary):
k=dictionary.keys()
v=dictionary.values()
result=[]
for i in range(0,max(k)):
result.append(0)
for j in k:
result[j]=v[k.index(j)]
return result
返されるエラーは、次のとおりです。
Traceback (most recent call last):
File "Code", line 8, in convertDictionary
IndexError: list assignment index out of range
誰も私を助けてもらえますか?どうもありがとうございます!このような
リストが作成される前にリスト要素にアクセスしようとしました。まず、すべての0のリストを作成します。vector = [0] * max(k) '。次に、内部ループを使用して非ゼロを更新します。 – DyZ