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

Python中N×N矩阵满足条件后如何将首列剩余位置填充为1

实现方案

错误原因说明

你原本写法matrix[i:][0] = 1出错的核心原因是:matrix[i:]会返回从第i行开始的所有行组成的子列表,此时取[0]实际是获取这个子列表的第一个元素(也就是第i行本身),并非选中所有行的第0列,赋值逻辑不符合预期。

实现方式1:嵌套循环赋值

找到触发条件的行索引后,遍历剩余行直接修改第一列的值,逻辑直观易理解:

for i in range(len(str2)):
    if str2[i] == str1[0]:   # 自定义判断条件
        # 从当前行到最后一行,逐行修改第一列为1
        for j in range(i, len(str2)):
            matrix[j][0] = 1
        break
    else:
        matrix[i][0] = 0

实现方式2:标记位单次遍历

通过标记位控制填充状态,不需要嵌套循环,代码更简洁:

# 初始化填充1的标记为False
should_fill = False
for i in range(len(str2)):
    # 未触发填充时检查条件,满足则修改标记
    if not should_fill and str2[i] == str1[0]:
        should_fill = True
    # 根据标记赋值,触发后所有行第一列都设为1
    matrix[i][0] = 1 if should_fill else 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:15:04