如何复制列表列表并从一个步骤中删除最后一个元素?我可以做这样的事情,但想学会一步到位:
test2 = [["A","A","C"],
["C","A"],
["A","B","C","A"]]
import copy
test3 = copy.deepcopy(test2)
for item in test3:
del item[-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']]