我创建了一个函数f,该函数使用2维列表作为参数,但是在此函数之后,列表完全不变。
如下面的代码:
def f(t: [[int]]):
for eachrow in t:
eachrow = eachrow[1:]
eachrow.append(0)
A = [[2, 10, 0], [3, 1, 2], [3, 2, 1]]
f(A)
print(A) # -> [[2, 10, 0], [3, 1, 2], [3, 2, 1]]
最佳答案
在eachrow
中分配给eachrow = eachrow[1:]
会将其覆盖。因此,要删除第一个元素,可以改用del
或row.pop
或slice assignment。
def f(t):
for row in t:
del row[0] # OR row.pop(0) OR row[:] = row[1:]
row.append(0)
A = [[2, 10, 0], [3, 1, 2], [3, 2, 1]]
f(A)
print(A) # -> [[10, 0, 0], [1, 2, 0], [2, 1, 0]]