我创建了一个函数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:]会将其覆盖。因此,要删除第一个元素,可以改用delrow.popslice 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]]

09-07 08:05