Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何替换给定范围内列表列表中的元素?_Python_List - Fatal编程技术网

Python 如何替换给定范围内列表列表中的元素?

Python 如何替换给定范围内列表列表中的元素?,python,list,Python,List,假设我已经定义了列表列表,例如: 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]] 我想做的是创建一个循环,循环遍历lista中的每个列表,并将给定范围内的元素(移动到下一个列表时增加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]] 我尝试过不同的想法,但最终没有一个有效,我觉得我误解了什么 我试过:

假设我已经定义了列表列表,例如:

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]]
我想做的是创建一个循环,循环遍历list
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]]
对于i,枚举(a)中的行:
行[:i+1]=[0]*(i+1)

第三行使用Python的切片订阅,我们使用它为其分配一个iterable(特别是零列表)。

以下是基本方法:

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 in range(len(a)):
    for j in range(i):
      a[i][j]=0
print(a)

假设第一个列表的第一个元素不应该是零,因为它是“(移动到下一个列表时增加1)”

当前代码创建所需的零,但重置每个子列表的其余元素。另外,它不是惯用的Python-
for in-range(len(…)
,当需要索引时,应该避免使用
枚举
。@jsbueno OP想要改变初始列表,而不是像您在回答中提供的那样创建一个新列表。看起来不错,除了单词后面的推理,因为。示例输出表明这是目的所在。是否需要对列表进行适当修改?
b = []
for i, sublist in enumerate(a, 1):
   b.append([0] * i  + sublist[i:])