如何在列表中的每个列表前添加元素

时间:2019-02-22 17:56:25

标签: python

我有一个列表列表:

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

我想在列表中的每个列表前添加字符串'a',以使x变为:

[['a', 1, 2, 3], ['a', 4, 5, 6], ['a', 7, 8, 9]]

实现这一目标的最有效的方法是什么?

到目前为止我所拥有的:

[l.insert(0, 'a') for l in x]

2 个答案:

答案 0 :(得分:3)

只需添加您想添加的内容即可

[['a'] + l for l in x]

# [['a', 1, 2, 3], ['a', 4, 5, 6], ['a', 7, 8, 9]]

答案 1 :(得分:1)

添加到列表很昂贵(O(n)),因为您需要移动列表的每个元素才能为新项目腾出空间。 (相比之下,附加费用很便宜。)

如果您经常需要对这些列表进行操作,请考虑改用deque,它经过优化可有效支持追加和前置。

from collections import deque

x = [deque([1,2,3]), deque([4,5,6]), deque([7,8,9])]
for d in x:
    d.appendleft('a')