python中的If-for-else嵌套集理解

python中的If-for-else嵌套集理解,python,python-3.x,list-comprehension,set-comprehension,Python,Python 3.x,List Comprehension,Set Comprehension,我正在尝试将以下嵌套条件转换为“设置理解”,但无法使其正常工作 processed=set() 如果存在(语句、列表): 在声明中采取行动: 已处理。添加(操作) 其他: 已处理。添加(语句) 我尝试了以下方法,但看起来我犯了一个错误 processed={isinstance(语句,列表)else语句时语句中操作的操作} 编辑:其中语句可以是列表或字符串。如果语句在集合理解之外,则需要语句,就像在else案例中一样,语句不是可编辑的 processed={action for action

我正在尝试将以下嵌套条件转换为“设置理解”,但无法使其正常工作

processed=set()
如果存在(语句、列表):
在声明中采取行动:
已处理。添加(操作)
其他:
已处理。添加(语句)
我尝试了以下方法,但看起来我犯了一个错误

processed={isinstance(语句,列表)else语句时语句中操作的操作}

编辑:其中
语句可以是列表或字符串。

如果
语句在集合理解之外,则需要
语句,就像在
else
案例中一样,
语句
不是可编辑的

processed={action for action in statements}如果isinstance(statements,list)或者{statements}
试试这个

proceed={x for x in statements} if isinstance(statements, list) else statements 

如果您不必以任何价格使用集合理解,那么您的代码可以通过使用
集合
方法来简化,该方法接受iterable,并且与使用
具有相同的效果。为iterable的每个元素添加
。简化代码:

processed = set()
if isinstance(statements, list):
    processed.update(statements)
else:
    processed.add(statements)

什么是
语句
?请提供。这比我想到的
{a for a in(statements if is instance(statements,list)else[statements])}
要好,而不是
{action for action in statements}
你可以做
设置(statements)
来简化一下。@big_bad_bison true,我这样做的原因是专门为一套理解而提出的问题。谢谢,看起来这是正确的解决方案。