0

私は1つのリストを持っています

x = ['1100000', '0110000', '0011000', '0001100', '0000110', '0000011']

配列全体に対して各要素に対してビット単位の XOR 演算を実行したいので、次のように xor 関数を定義しました。

def x_o_r(val) :
    return "".join([ str(int(x) ^ int(y)) for (x,y) in val])

ここでvalは次のようzip(list('1100000'), list('0110000')]になります..

だから私は次のように理解を定義しました

[(x_o_r(z) for z in zip(list(a), list(b))) for a in x for b in x ]

それは私を返し続けます

[<generator object <genexpr> at 0x0000000003704048>, <generator object <genexpr> at 0x0000000003704090>,.....]

私は理解していません、私は[]結果の周りを持っています。

個々のジェネレーターをリストに変換しようとさえしました(list()関数も試しました)

[([x_o_r(z)] for z in zip(list(a), list(b))) for a in x for b in x ]

誰でも私の間違いを指摘できますか?

編集

さて、MArtijnのアドバイスを受けて、次の式で解決しました

["".join([str(int(s) ^ int(d)) for (s,d) in zip(list(a), list(b))]) for a in x for b in x]
4

1 に答える 1