Python列表理解和'不在'

Nyx*_*nyx 20 python python-2.x

我开始使用Python,目前正在学习列表推导,所以这可能听起来很奇怪.

问题:是否可以使用列表推导来创建t未找到的元素列表s

我尝试了以下内容,它给了我一个错误:

>>> t = [1, 2, 3, 4, 5]
>>> s = [1, 3, 5]
>>>[t for t not in s]

[t for t not in s]
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

Luc*_*iro 33

试试这个:

[x for x in t if x not in s]
Run Code Online (Sandbox Code Playgroud)

您可以在列表推导中嵌套任何if语句.尝试这个标识,以获得真正长条件的条件,更直观地了解代码正在做什么.

my_list = [(x,a)
           for x in t
           if x not in s
           if x > 0
           for a in y
           ...]
Run Code Online (Sandbox Code Playgroud)

看到?


Leo*_*o.Z 6

[item  for item  in t if item not in s]
Run Code Online (Sandbox Code Playgroud)

  • 这与之前给出的 [Lucas' answer](http://stackoverflow.com/a/19507719/119527) 相同,因此完全多余。 (5认同)
  • 慢打字对程序员来说是罪过 (5认同)
  • 这就是为什么我没有投反对票。不幸的是,您经常会发现 Stack Overflow 是第一个正确答案的竞赛。 (2认同)