列表推导中的'else'语句

时间:2010-09-24 01:16:54

标签: python list-comprehension

我有一个变量,可以是字符串或元组(我不提前知道),我需要将其作为列表使用。

基本上,我想将以下内容转换为列表理解。

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]

我见过这个question但是它不一样,因为提问者可以在最后使用for循环;我的只适用于它是一个元组。

注意:如果我使用isinstance(variable, list)以及tuple,我希望列表理解能够正常工作。

2 个答案:

答案 0 :(得分:5)

我想你想要:

final = [variable] if isinstance(variable, str) else list(variable)

答案 1 :(得分: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]