如何从python复制列表列表,而不是每个列表中的最后一个元素

时间:2018-02-13 22:15:42

标签: python list copy

如何复制列表列表并从一个步骤中删除最后一个元素?我可以做这样的事情,但想学会一步到位:

test2 = [["A","A","C"],
         ["C","A"],
         ["A","B","C","A"]]

import copy
test3 = copy.deepcopy(test2)
for item in test3:
    del item[-1]

1 个答案:

答案 0 :(得分:2)

在一个步骤中,您将需要使用列表推导。假设您的列表仅为二维且由标量组成的子列表,您可以使用切片语法来创建副本。

>>> [x[:-1] for x in test2]
[['A', 'A'], ['C'], ['A', 'B', 'C']]

如果您的子列表包含可变/自定义对象,请在表达式中调用copy.deepcopy

>>> [copy.deepcopy(x[:-1]) for x in test2]
[['A', 'A'], ['C'], ['A', 'B', 'C']]