python - 迭代元组列表的子集

dop*_*ner 6 python

让我们说我有一个元组列表如下

l = [(4,1), (5,1), (3,2), (7,1), (6,0)]
Run Code Online (Sandbox Code Playgroud)

我想迭代元组中第二个元素为1的项目?

我可以在循环中使用if条件来做到这一点,但是我希望有一个更好的pythonic方式吗?

谢谢

jh3*_*314 6

您可以使用列表理解:

[ x for x in l if x[1] == 1 ]
Run Code Online (Sandbox Code Playgroud)

您也可以使用生成器语法迭代元组:

for tup in ( x for x in l if x[1] == 1 ):
    ...
Run Code Online (Sandbox Code Playgroud)

  • 那个genexp比同等的`if`语句的可读性差得多.这似乎是一个坏主意. (3认同)