在python中高效地更新列表中特定位置的元素

在python中高效地更新列表中特定位置的元素,python,Python,我想对一个列表中存储的多个列表中位于0位置的元素应用简单的函数(例如,添加1)。到目前为止,我在这里: out = [[10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21]] print(out) # [[10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21]] out_updated = [[out_i[0]+1, out_i[1], out_i[2]] for out_i in out

我想对一个列表中存储的多个列表中位于
0
位置的元素应用简单的函数(例如,添加
1
)。到目前为止,我在这里:

out = [[10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21]]
print(out)
# [[10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21]]

out_updated = [[out_i[0]+1, out_i[1], out_i[2]] for out_i in out]
out_updated
# [[11, 11, 12], [14, 14, 15], [17, 17, 18], [20, 20, 21]]

有没有更好(更像python,更简洁)的方法来获取更新后的
out

在您的理解中使用切片:

[[row[0] + 1] + row[1:] for row in out]
如果将向第一个元素添加
1
作为一个函数,可能会更整洁:

def inc_first_elem(list_):
    return [list_[0]] + list_[1:]

[inc_first_elem(row) for row in out]
顺便说一句,如果您不介意额外的开销,numpy阵列非常适合:

import numpy as np
out_arr = np.array([[10, 11, 12],
                    [13, 14, 15],
                    [16, 17, 18],
                    [19, 20, 21]])
out_arr[:,0] += 1

时期我删掉了
+
以加入两个列表。谢谢大家!@MartaKaras您也可以使用
.extend()