在Python中修改列表内容
我有一个这样的列表:
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 开头的一个空切片,通过给它赋值,你就可以在那个位置插入项目。