我在 python 中创建了以下列表理解:
[int(a[0].internal_value).lower() if type(a[0].internal_value) in (str,unicode) and a[0].internal_value.isdigit() == True
else str(a[0].internal_value).lower() if type(a[0].internal_value) in (str,unicode)
else int(a[0].internal_value) if type(a[0].internal_value) in (float,int)
for a in ws.iter_rows() if a[0].internal_value <> None]
我在尝试构建最终的 else 时遇到问题,如果条件:
else int(a[0].internal_value) if type(a[0].internal_value) in (float,int)
如果我在该行中使用 if 条件,我会得到一个无效的语法。
if type(a[0].internal_value) in (float,int)
如果我删除 if 语句
else int(a[0].internal_value)
然后它似乎运行良好。我需要在那里有那个 if 语句。
对我来说,如果条件是执行更简单的 if, else 条件的列表推导方式:
if i == x:
do something
elif i == y:
do something
elif i == z:
do something
按照规则,您不必总是用“else”来结束一系列条件句。在我看来,我的代码在理解中需要一个最终的“else”。我是否正确地说明了这一点,如果是这样,有没有办法构造一个最终的 else,如果在 python 列表理解而不是最终的 else 中?