对比Python中的两个排序列表

我有两个排序的列表,我需要在每个列表中找出奇怪的列表。

目前我正在使用两个列表推导式not in

> if foo != bar:
      in_foo = [i for i in foo if i not in bar]
      in_bar = [i for i in bar if i not in foo]

但是,此方法没有利用列表的排序结构。

我可以使用带有计数器变量和递归的替代方法,但是有没有更 Pythonic 的方法来做到这一点?

编辑:排序输出是首选。谢谢。

回答

任何时候遇到这样的事情时,通常最好使用集合并忽略排序(由于语言开销,这在 Python 中对于小列表的重要性远低于其他编程语言)

_foo   = set(foo)
_bar   = set(bar)
in_foo = _foo - _bar
in_bar = _bar - _foo

  • @SrikrishnaSharma How so? `set`s are unordered.

以上是对比Python中的两个排序列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>