私は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]