python - 如何正确地从列表中丢弃类似的元素?
问题描述
我有这样的清单:
a = [1,2,3,4,5,6,7]
b = [10,11,13,2,14,7]
我想要这样的输出:
b = [10,11,13,14]
如果 a 的元素在 b 中,则它已被丢弃。拜托,谁能告诉我该怎么做?
解决方案
使用列表理解:
b = [x for x in b if x not in a]
像这样工作:
a = [1,2,3,4,5,6,7]
b = [10,11,13,2,14,7]
b = [x for x in b if x not in a]
print b
>> [10, 11, 13, 14]
回复:@DeepSpace 的建议,在列表中查找集合的元素将比在另一个列表中查找列表的元素快得多,因此声明a
为set()
a = set([1,2,3,4,5,6,7])
b = [10,11,13,2,14,7]
b = [x for x in b if x not in a]
推荐阅读
- bash - 激活环境时,Conda 不设置路径
- c# - 字段初始值设定项无法引用非静态字段、方法或属性“SignalServer.connectionString”(CS0236)
- flutter - Flutter:如何在 N 秒间隔后停止计时器?
- r - 如何绘制站点指数曲线族?
- python - 取 STR 的每个元素的值,直到达到 #
- ruby - JSON 解析 Redis.get 返回
- matplotlib - 制作RGB值的散点图python matplotlib的颜色
- c - 如何打开磁盘以写入 Windows 中的最后一个扇区?
- python - 尽管迁移已成功完成,但 Admin 或 Api 没有变化
- ios - iOS Stackview Tap Buttons在彼此之上