python - 如何替换给定范围内列表列表中的元素?
问题描述
假设我已经定义了列表列表,例如:
a = [[1,2,1,1,1],[1,1,3,4,1],[2,1,2,5,1],[1,1,2,2,3],[1,1,1,1,1]]
我想要做的是创建一个循环,它将遍历列表中的每个列表,a
并用零替换给定范围内的元素(移动到下一个列表时增加 1),因此输出将是:
a = [[1,2,1,1,1],[0,1,3,4,1],[0,0,2,5,1],[0,0,0,2,3],[0,0,0,0,1]]
我尝试了不同的想法,但最后似乎都没有奏效,我觉得我误解了一些东西。
我试过了:
k = 0
for i in range(len(a)):
a[i][:k] = 0
k += 1
但它没有用。
解决方案
我假设最后一个子列表的最后一个元素应该为零。
a = [[1,2,1,1,1],[1,1,3,4,1],[2,1,2,5,1],[1,1,2,2,3],[1,1,1,1,1]]
for i, row in enumerate(a):
row[:i+1] = [0] * (i+1)
第 3 行使用 Python 的 slice 订阅,我们使用它为它分配一个可迭代的(特别是零列表)。
推荐阅读
- angular - 如何在angular2或更高版本的下拉菜单下有一个带有搜索过滤器的搜索框
- sql-server - MS SQL 空间索引和执行时间
- javascript - 有没有办法在局部视图中获取 ajax 调用的控制器路径?
- lapack - 查找 LAPACK/BLAS 错误代码列表
- tensorflow - 对象检测在笔记本电脑上运行非常缓慢
- python - AWS Lambda 不导入 Asyncio
- c# - 在 C# 的基类中使用泛型:如何确保基类中的方法返回派生类的类型?
- laravel - Laravel Lighthouse Graphql HasOne 嵌套关系不起作用
- sql - 显示每周总计
- django - 如何使用 field_classes 将 datepicker 和 timepicker 添加到 Django forms.SplitDateTimeField?