列表推导中的'else'语句

0 投票
2 回答
795 浏览
提问于 2025-04-16 04:32

我有一个变量,它可能是字符串也可能是元组(我事先不知道),我需要把它当作列表来处理。

简单来说,我想把下面的内容转换成列表推导式。

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)

撰写回答