Python中的条件for

2024-03-28 17:49:32 发布

您现在位置:Python中文网/ 问答频道 /正文

Python有下面这样的东西吗?

for item in items #where item>3:
  #.....

我是说Python 2.7和Python 3.3都在一起。


Tags: inforitemsitemwhere
3条回答

在您的问题中没有像where这样的特殊语法,但是您始终可以在for循环中使用if语句,就像在任何其他语言中一样:

for item in items:
    if item > 3:
        # Your logic here

或者一个保护条款(同样,像其他语言一样):

for item in items:
    if not (item > 3): continue

    # Your logic here

这两种枯燥的方法几乎和一种特殊的语法一样简洁易读。

可以将循环与generator expression组合:

for x in (y for y in items if y > 10):
    ....

^{}(py2)/^{}(py3)是另一个选项:

items = [1,2,3,4,5,6,7,8]

odd = lambda x: x % 2 > 0

for x in filter(odd, items):
    print(x)

你的意思是这样的:

item_list = [item for item in items if item > 3]

或者,可以使用Generator表达式,该表达式不会创建新列表,而是返回生成器,然后使用yield方法返回每次迭代的下一个元素:

for item in (item for item in items if item > 3):
    # Do your task

相关问题 更多 >