【发布时间】:2010-09-24 01:16:54
【问题描述】:
我有一个可以是字符串或元组的变量(我不知道提前),我需要将它作为一个列表来处理。
本质上,我想将以下内容转换为列表理解。
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 之一,我希望列表理解能够工作。
【问题讨论】:
-
为什么需要它是字符串或元组?为什么不能是 unicode 或列表?
-
我不确定列表推导在这里有什么用处,因为您拥有的代码不会通过迭代创建列表。你甚至没有
for循环。 -
我的代码不需要 for 循环。但是如果我在列表理解中使用
list(variable,它会在列表中创建一个不是我想要的列表(尽管我注意到@Matthew 的回答提供了一种解决方法)。 @Aaron:我不需要它是字符串或元组。它是以那种格式给我的。