You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对列表中的整数元素对执行XOR操作并转换为二进制?

问题解决思路与修正代码

你的代码问题点

  1. 循环逻辑错误:用enumerate(test_list)遍历,但完全没用到返回的索引和元素,反而每次循环都对整个列表执行reduce,这会试图让元组之间做XOR运算,完全偏离了“对每个元组内两个数计算”的需求。
  2. reduce误用:reduce在这里完全没必要,每个元组只有两个元素,直接取值计算更简单。
  3. 二进制格式化缺失:没有处理前导零,无法得到示例中8位长度的二进制结果。

修正后的代码(直接对数字做XOR)

如果你的需求是直接对整数对中的两个数字执行XOR,再转成8位二进制:

test_list = [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9), (1, 0), (1, 1)]

for pair in test_list:
    a, b = pair
    xor_res = a ^ b
    # 格式化为8位二进制,自动补前导零
    binary_str = f"{xor_res:08b}"
    print(binary_str)

匹配示例的代码(基于ASCII码的XOR)

如果是按照你示例中,先把数字转成对应字符的ASCII码再做XOR(比如十进制0对应字符'0'的ASCII码48,二进制00110000),代码如下:

test_list = [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9), (1, 0), (1, 1)]

for pair in test_list:
    a, b = pair
    # 将数字转为字符后取ASCII码
    ascii_a = ord(str(a))
    ascii_b = ord(str(b))
    xor_res = ascii_a ^ ascii_b
    binary_str = f"{xor_res:08b}"
    print(binary_str)

运行这段代码,(0,2)的结果就是你示例中的00000010。

内容的提问来源于stack exchange,提问作者ΧΡΗΣΤΟΣ ΠΑΠΑΔΟΠΟΥΛΟΣ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:20:37