我有一份清单
x = ['1100000', '0110000', '0011000', '0001100', '0000110', '0000011']
我想对整个数组的每个元素进行逐位异或运算,所以我定义了一个异或函数,如下所示
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]