首页 > 解决方案 > 将数字添加到列表的开头

问题描述

我有一个列表列表,比如 X,看起来像这样

X_train = [[4,3,1,5], [3,1,6,2], [5,0,49,4], ... , [3,57,3,3]]

我写了这段代码

for x in range(0,len(X_train)):
    X_train[x].insert(0, x+1)

对于 X 中的每个列表,此代码将列表的索引值 + 1 插入到列表的开头。也就是说,运行

for x in range(0,len(X_train)):
    X_train[x].insert(0, x+1)
print(X)

将产生以下输出

[[1,4,1,5],[2,3,1,6,2],[3,5,0,49,4],...,[n,3,57,3,3]]

其中 n 是 X 中的列表数。

问题:有没有更快的方法来做到这一点?我希望能够为非常大的列表执行此操作,例如具有数百万个子列表的列表(如果可能的话)。

标签: python-3.x

解决方案


这在我的测试中更快:

X = [[n, *l] for n, l in enumerate(X, 1)]

推荐阅读