【发布时间】:2012-09-26 13:06:26
【问题描述】:
在 Python 中,您可以像这样连接列表:
print([3,4,5]+[4,5])
给出这个输出:
[3,4,5,4,5]
但我正在寻找的是一个等效的“减法”操作,所以做这样的事情:
print([3,4,5]-[4,5])
会输出这个:
[3]
但是,没有为列表定义减法运算符。我试过这个:
a = [3,4,5]
b = [4,5]
print(list(filter(lambda x : x not in b,a)))
哪个有效,但我不确定这是否是最好的方法。我也想保留原来的物品位置
【问题讨论】:
-
把列表变成集合然后做减法?用列表做减法不是很明确,特别是如果你有重复。
-
a = [3,4,5]、b = [5,4]的情况应该发生什么,因为您希望订单很重要... -
添加这样的列表称为“连接”。减法不是相反的过程。
-
如果第一个列表包含重复项会怎样?如果
a = [3, 4, 4, 5]和b = [4, 5],是否只有一个 4 被删除?答案是[3, 4]还是[3] -
我也不清楚 OP 想要什么。
[3, 4, 5]-[4]应该产生[3, 5]还是不是一个有效的操作(如,这是否只适用于尾部 - 正如我的回答所假设的那样)?
标签: python python-3.x