首页 > 解决方案 > 从列表理解中获得一个集合。Python

问题描述

我正在写一个列表理解。我的目标是得到一个列表作为回报,但由于某种原因,我得到了一个集合,即使我正在对列表进行理解。目前我的代码如下所示:

filteredList = {obj.index for obj in myObjectList if filter(obj) == True}

当我检查“myObjectList”的类型时,它是一个列表,但是当我检查“filteredList”的类型时,它是一个集合。为什么在一个列表上完成一个理解给我一个集合?

标签: pythonlist-comprehension

解决方案


推导的结果不是基于您正在执行推导的数据类型。这与你如何设置理解的结果有关。在这种情况下,您使用花括号进行理解,因此您得到seta 结果。

试试这个:

filteredList = [obj.index for obj in myObjectList if filter(obj) == True]

这会将结果obj.index' 放在列表中(由[]括号定义),而不是集合({}括号)


推荐阅读