列表推导中的'else'语句
我有一个变量,它可能是字符串也可能是元组(我事先不知道),我需要把它当作列表来处理。
简单来说,我想把下面的内容转换成列表推导式。
variable = 'id'
final = []
if isinstance(variable, str):
final.append(variable)
elif isinstance(variable, tuple):
final = list(variable)
我在想类似下面的方式(但这会让我遇到语法错误)。
final = [var for var in variable if isinstance(variable, tuple) else variable]
我看到过这个问题,但那不一样,因为提问者可以在最后使用for
循环;而我的情况只适用于元组。
注意:我希望这个列表推导式在使用isinstance(variable, list)
时也能正常工作,除了元组以外。
2 个回答
2
你只需要稍微调整一下就行。
final = [var if isinstance(variable, tuple) else variable for var in variable]
或者我可能理解错了,你其实想要的是
final = variable if not isinstance(variable, tuple) else [var for var in variable]
5
我觉得你想要的是:
final = [variable] if isinstance(variable, str) else list(variable)