У меня есть переменная, которая может быть либо строкой, либо кортежем (я не знаю заранее), и мне нужно работать с ним в виде списка.выражение '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]
Я видел это question, но это не то же самое, потому что спрашивающий может использовать петлю for
в конце; мой только применяется, если это кортеж.
Примечание: Я хотел бы, чтобы список понимание, чтобы работать, если я использую isinstance(variable, list)
, а также tuple
один.
Зачем вам это нужно, чтобы быть строка или кортеж? почему он не может быть unicode или списком? – aaronasterling
Я не уверен, что понимание списка будет полезно здесь, потому что код, который у вас есть, не создает список по итерации. У вас даже нет цикла 'for'. –
Код, который у меня отсутствует, не требует цикла for. Но если я использую 'list (variable' в понимании списка, он создает список в списке, который не то, что я хочу _ (Хотя я заметил, что ответ Матфея дает возможность обойти его). @Aaron: I не нужно _need_ это строка или кортеж. Это дано мне в этом формате. – avacariu