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

Python生成0/1值11×6对称矩阵时各行重复的问题求解

问题原因

你的代码存在两个核心问题:

  1. 列表引用复制错误:pattern = [row] * 6 这行代码不会生成6个独立的行列表,只是把同一个row列表的内存地址复制了6份存到pattern里。也就是说pattern[0]到pattern[5]指向的是完全相同的一个列表,你修改任意pattern[i]的元素,本质都是修改同一个列表,最后所有行自然显示完全一样的内容。
  2. 内层循环存在冗余计算:因为要求行对称,不需要遍历完整的11个位置,只需要生成前半段(含中间位)的值,对称位置直接赋值即可,遍历全量会重复覆盖值,虽然不影响结果但属于无效计算。
修正代码

只需要保证每一行都是独立创建的新列表,同时优化内层循环范围即可:

import random

def pattern_generator():
    pattern = []
    for _ in range(6):
        row = [None] * 11
        # 长度11的列表对称点在索引5,只需遍历0-5共6个位置
        for j in range(6):
            x = random.randint(0, 1)
            row[j] = x
            row[10 - j] = x
        pattern.append(row)
    return pattern

运行上述代码后,会返回6个独立的、每行满足对称特性的随机0-1行,不会再出现所有行完全相同的问题。

内容的提问来源于stack exchange,提问作者Sarghhh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:51:22