【发布时间】:2019-09-18 06:27:07
【问题描述】:
定义两种迭代方式的最 Pythonic 形式是什么。例如,我有这个原始代码:
def f1(cat_gen):
for (a, b), c in cat_gen:
if some condition:
yield (a, b), c
但是,取决于cat_gen,我需要以这种方式迭代:
def f1(cat_gen):
for a, b, c in cat_gen:
if some condition:
yield a, b, c
有没有办法在for 语句中将(a, b), c 有条件地更改为a, b, c
【问题讨论】:
-
触发选择您需要哪种方法的条件是什么?
-
实际上取决于调用者,我可以使用
f1中的参数来指定 -
for t in cat_gen: ...; yield t. -
@chepner 在
if语句中我需要使用a、b和c
标签: python python-3.x iterator iteration