我有一个列表列表:
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]
答案 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')