在Python中修改列表内容

3 投票
5 回答
9416 浏览
提问于 2025-04-15 12:35

我有一个这样的列表:

list = [[1,2,3],[4,5,6],[7,8,9]]

我想在列表中每个值的开头加上一个数字,比如说这个数字是9。我希望新的列表看起来像这样:

list = [[9,1,2,3],[9,4,5,6],[9,7,8,9]]

我该怎么在Python中实现这个呢?我知道这个问题很简单,但我找不到解决办法。

相关问题:

5 个回答

2

使用插入方法,这个方法会直接修改原来的列表

>>> numberlists = [[1,2,3],[4,5,6]]
>>> for numberlist in numberlists:
...  numberlist.insert(0,9)
...
>>> numberlists
[[9, 1, 2, 3], [9, 4, 5, 6]]

或者,更简洁一点

[numberlist.insert(0,9) for numberlist in numberlists]

或者,使用列表连接的方法,这个方法会创建一个新的列表

newnumberlists = [[9] + numberlist for numberlist in numberlists]
12
>>> someList = [[1,2,3],[4,5,6],[7,8,9]]
>>> someList = [[9] + i for i in someList]
>>> someList
[[9, 1, 2, 3], [9, 4, 5, 6], [9, 7, 8, 9]]

(someList是因为list这个名字已经被Python用过了)

16
for sublist in thelist:
  sublist.insert(0, 9)

不要用像 list 这样的内置名称来命名你自己的东西,这样做只会让你陷入麻烦——给你的东西起个名字,比如 mylist 或者 thelist而不是 list

补充说明:因为提问者想知道如何在每个子列表的开头插入多个项目,我想指出,最有效的方法是通过将多个项目赋值给每个子列表的切片(大多数列表的修改方法可以看作是切片赋值的可读替代方案;-)也就是说:

for sublist in thelist:
  sublist[0:0] = 8, 9

sublist[0:0]sublist 开头的一个空切片,通过给它赋值,你就可以在那个位置插入项目。

撰写回答