整数ベクトルをバイナリに変換するプログラムを使用しましたが、今度は逆の操作を行う必要がありますが、ロジックを正しく使用していないと思います。リスト内の2つの項目を辞書のそれぞれの値に置き換えます
population=[[[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1], [6], [0]],
[[0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1], [4], [1]],
[[0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0], [6], [2]],
[[1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0], [4], [3]]]
def BinaryConversion2(population):
binary_return = []
binary_index = {(0,0): 0, (0,1): 1, (1,0): 2, (1,1): 3}
for game in range (0, len(population)):
converted = [s for num in population[game][0] for s in binary_index[num]]
binary_return.append(converted)
return (binary_return)
私は、それぞれの辞書値の括弧内のバイナリ文字列のすべての2ビットを交換する必要があるが、私はここでの問題は、プログラムが単一ビットをインデックス化され、それが正常に動作していないことであると信じています。
辞書の各値のリスト内の2つのアイテムを参照する方法を知っている人はいますか?この場合に役立つかもしれないその他のもの。
ありがとうございました!
それはまた、うまく動作します、ありがとう! – vferraz
ニース。 'binary_index'は必要ないことに注意してください。単純に '2 * i + j'を使うことができます。 –