在for循环中,如果我的迭代器满足条件,我如何传递给下一个迭代器?

时间:2015-08-14 19:20:00

标签: python for-loop iterator continue

我需要for loop的帮助。

如果我使用for语句循环遍历项目列表,如果实际满足条件,我应该如何传递给下一个迭代器?

示例:

for item in list:
    if item == 10:
        next_item
    else:
        do_something

我应该写什么而不是next_item

2 个答案:

答案 0 :(得分:3)

continue会奏效。但是,为什么不:

for item in list:
    if item != 10:
        do_something

甚至:

[do_something(item) for item in list if item != 10]

答案 1 :(得分:1)

我认为你的意思是获取if中的下一个项目,你可以使用iter调用next来获取if语句中列表中的下一个元素:

lst = [1,2,3,4]
it = iter(lst)
for item in it:
    if item == 10:
        nxt = next(it,None)
    else:
        do_something

如果您使用的是无用的对象,则可能需要在对nxt执行任何操作之前检查if nxt is not None

lst = [1,2,3,4]
obj = object()
it = iter(lst)
for item in lst:
    if item == 10:
        nxt = next(it, obj)
        if nxt is not obj:
            # do whatever
    else:
        do_something