在 for 循环中,如果我的迭代器满足条件,我如何传递给下一个迭代器?
In a for loop, if my iterator satisfies a condition, how can I pass to the next iterator?
我需要一些帮助for loop
。
如果我使用 for
语句遍历项目列表,如果实际满足条件,我应该如何 传递给下一个迭代器?
示例:
for item in list:
if item == 10:
next_item
else:
do_something
我应该写什么来代替 next_item
?
continue
会起作用。但是,为什么不呢:
for item in list:
if item != 10:
do_something
甚至:
[do_something(item) for item in list if item != 10]
我猜你的意思是获取 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
如果你有 None 的使用对象:
,你可能想在使用 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
我需要一些帮助for loop
。
如果我使用 for
语句遍历项目列表,如果实际满足条件,我应该如何 传递给下一个迭代器?
示例:
for item in list:
if item == 10:
next_item
else:
do_something
我应该写什么来代替 next_item
?
continue
会起作用。但是,为什么不呢:
for item in list:
if item != 10:
do_something
甚至:
[do_something(item) for item in list if item != 10]
我猜你的意思是获取 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
如果你有 None 的使用对象:
,你可能想在使用 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