大多数pythonic意味着找出一个列表中的元素是否不是另一个列表的成员

Tam*_*mpa 1 python

可能重复:
从2个列表中获得差异.蟒蛇

我有两个清单

rt = [1,2,3]
dp = [1,2]
Run Code Online (Sandbox Code Playgroud)

rt列表中找出3不是dp列表元素的最pythonic方法是什么?

GWW*_*GWW 7

>>> rt = [1,2,3]
>>> dp = [1,2]
Run Code Online (Sandbox Code Playgroud)

你可以使用套装:

>>> set(rt) - set(dp)
set([3])
Run Code Online (Sandbox Code Playgroud)

或列表理解:

>>> [x for x in rt if x not in dp]
>>> [3]
Run Code Online (Sandbox Code Playgroud)

编辑:jamylak指出你可以使用一套来提高会员资格查询的效率:

>>> dp_set = set(dp)
>>> [x for x in rt if x not in dp_set]
>>> [3]
Run Code Online (Sandbox Code Playgroud)

  • 为了最有效率,你可以制作`dp_set = set(dp)`并检查列表comp中的成员资格. (2认同)