我正在尝试使用生成器进行类型转换,但是一旦成功生成值,我想转移到迭代器中的下一个元素.在表达式成功的情况下,我当前的尝试将产生多个值:
def type_convert(data):
for item in data:
try:
yield int(item)
except (ValueError, TypeError) as WrongTypeError:
pass
try:
yield float(item)
except (ValueError, TypeError) as WrongTypeError:
pass
yield item
Run Code Online (Sandbox Code Playgroud)
这是如何完成的?
您应该能够continue像其他循环一样进行此循环:
try:
yield int(item)
continue
except (ValueError, TypeError) as WrongTypeError:
pass
Run Code Online (Sandbox Code Playgroud)
附带说明一下,我一直认为continue这个控制结构的名字很奇怪......
而且,这是您更正后的代码:
def type_convert(data):
for item in data:
try:
yield int(item)
continue
except (ValueError, TypeError) as WrongTypeError:
pass
try:
yield float(item)
continue
except (ValueError, TypeError) as WrongTypeError:
pass
yield item
for a in type_convert(['a','1','1.0']):
print (a)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |