我有一個列表,Python的 - 結果返回發電機列表,而不是(理解)
x = ['1100000', '0110000', '0011000', '0001100', '0000110', '0000011']
我想要做的每一對整個陣列 元素的逐位異或運算,所以我定義了一個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>,.....]
我不明白,我身邊有結果的[]
。
我甚至試過convet個別發電機列表(也試過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]
我真的認爲你應該在這裏使用'int()'與基地2 ... –