gpt4 book ai didi

python - Python 3.x 中的二进制为 "Unsupported operand type(s) for ^: ' str ' and ' str '"

转载 作者:行者123 更新时间:2023-12-01 03:24:18 26 4
gpt4 key购买 nike

我目前正在做一个关于二元运算符的项目。现在我有两个列表,其中包含一系列带有 8 位 1 和 0 的字符串。假设我有这段代码(代表我创建两个数组时生成的内容):

arr1 = ['0b01110101', '0b00001111', '0b01001101']
arr2 = ['0b10010100', '0b00000101', '0b00111001']
arr3 = []

我想运行一个循环,对每个值执行异或二元运算符。这是到目前为止我的循环:

for i in len(arr1):
arr3[i] = arr1[i] ^ arr2[i]

当我运行此代码时,我收到此错误消息:

Unsupported operand type(s) for ^: 'str' and 'str'

我尝试过这样做:

arr3[i] = bin(arr1[i]) ^ bin(arr2[i])

它返回此错误消息:

TypeError: 'str' object cannot be interpreted as an integer

我该如何解决这个问题?

编辑 1:这与评论中标记的内容并不重复。我不是在寻找如何执行正常的 XOR 二进制函数。我知道该怎么做。我正在寻找一种将这些字符串转换为二进制数字的方法,以便我可以对它们使用 XOR 运算符。

最佳答案

试试这个:

arr1 = ['0b01110101', '0b00001111', '0b01001101']
arr2 = ['0b10010100', '0b00000101', '0b00111001']
arr3 = []

for i, _ in enumerate(arr1):
xor = int(arr1[i], 2) ^ int(arr2[i], 2)
arr3.append("0b{0:08b}".format(xor))

输出:

['0b11100001', '0b00001010', '0b01110100']

关于python - Python 3.x 中的二进制为 "Unsupported operand type(s) for ^: ' str ' and ' str '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571173/

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