Python 在列表中的列表中插入值

Python 在列表中的列表中插入值,python,Python,所以我有 matrix = [['B Borg', '3', '3', '1.0'], ['F Perry', '7', '8', '0.875'], ['R Nadal', '3', '5', '0.6']] 我想让它看起来像这样: [['1','B Borg', '3', '3', '1.0'], ['2','F Perry', '7', '8', '0.875'], ['3','R Nadal', '3', '5', '0.6']] 我试过了 matrix.insert([0][0],

所以我有

matrix = [['B Borg', '3', '3', '1.0'], ['F Perry', '7', '8', '0.875'], ['R Nadal', '3', '5', '0.6']]
我想让它看起来像这样:

[['1','B Borg', '3', '3', '1.0'], ['2','F Perry', '7', '8', '0.875'], ['3','R Nadal', '3', '5', '0.6']]
我试过了

matrix.insert([0][0],"1")
matrix.insert([1][0],"2")
matrix.insert([2][0],"3")
但最终结果是:

matrix = ["1",",2","3"['B Borg', '3', '3', '1.0'], ['F Perry', '7', '8', '0.875'], ['R Nadal', '3', '5', '0.6']]
我的猜测是我把插入部分的索引搞砸了,但我就是不知道我做错了什么。

问题是[0][0]是列表[0]中的第一个元素,即0。因此,matrix.insert[0][0],1与matrix.insert0,1相同。换句话说,它在矩阵顶部插入一个新行,只有一个值1

您需要的是矩阵[0]。插入0,1。由于矩阵[0]是矩阵中的第一行,因此将在第一行的左端插入一个新列。

请尝试以下操作:

matrix2 = [[str(i+1)] + x for i,x in enumerate(matrix)]
或者,使用consume itertools配方:

>>> matrix = [['B Borg', '3', '3', '1.0'], ['F Perry', '7', '8', '0.875'], ['R Nadal', '3', '5', '0.6']]
>>> collections.deque((subl.insert(0, str(i)) for i,subl in enumerate(matrix, 1)), maxlen=0)
deque([], maxlen=0)
>>> matrix
[['1', 'B Borg', '3', '3', '1.0'], ['2', 'F Perry', '7', '8', '0.875'], ['3', 'R Nadal', '3', '5', '0.6']]

如果你在矩阵上循环,这些项目就是你需要插入的东西

>>> matrix = [['B Borg', '3', '3', '1.0'], ['F Perry', '7', '8', '0.875'], ['R Nadal', '3', '5', '0.6']]
>>> for i, item in enumerate(matrix, 1):
...     item.insert(0, str(i))
... 
>>> matrix
[['1', 'B Borg', '3', '3', '1.0'], ['2', 'F Perry', '7', '8', '0.875'], ['3', 'R Nadal', '3', '5', '0.6']]
>>> matrix = [['B Borg', '3', '3', '1.0'], ['F Perry', '7', '8', '0.875'], ['R Nadal', '3', '5', '0.6']]
>>> for i, item in enumerate(matrix, 1):
...     item.insert(0, str(i))
... 
>>> matrix
[['1', 'B Borg', '3', '3', '1.0'], ['2', 'F Perry', '7', '8', '0.875'], ['3', 'R Nadal', '3', '5', '0.6']]