gpt4 book ai didi

python - 如何在列表列表中执行按位异或

转载 作者:行者123 更新时间:2023-12-01 23:22:22 25 4
gpt4 key购买 nike

假设我有一个列表 [[1,2,3],[1,2,3,4]]

如何找到所有列表元素的异或,

因为[1^2^3]的异或是0,所以[1^2^3^4]的异或是4 所以结果列表将是

[0,4] 

提前致谢。

最佳答案

您可以将列表理解与 functools.reduceoperator.xor 结合使用。

from operator import xor
from functools import reduce

seq = [[1,2,3],[1,2,3,4]]
res = [reduce(xor, i) for i in seq]

print(res)

输出

[0, 4]

编辑:获取“具有最大异或值的列表”

这将返回一个“列表的列表”,其中所有列表的 xor 值与 max_xor 的值相同。

max_xor = max(res)  # from above
max_xor_lists = [i for i, j in zip(seq, res) if j == max_xor]
print(max_xor_lists)

输出

[[1, 2, 3, 4]]

如果您只需要第一个具有最大异或值的列表,那么 max_xor_lists[0] 将给出第一个符合此条件的列表。

如果唯一的结果是获得具有最大异或值的列表(IOW,不想要中间异或结果),那么正如 Alex 在评论中所建议的那样

from operator import xor
from functools import reduce, partial

seq = [[1,2,3],[1,2,3,4]]
_xor = partial(reduce, xor)
max_xor_list = max(seq, key=_xor)
print(max_xor_list)

输出

[1, 2, 3, 4]

关于python - 如何在列表列表中执行按位异或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67871897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com