Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从列表理解中获取一个集合。python_Python_List Comprehension - Fatal编程技术网

从列表理解中获取一个集合。python

从列表理解中获取一个集合。python,python,list-comprehension,Python,List Comprehension,我正在写一份清单。我的目标是得到一个列表作为回报,但出于某种原因,我得到了一个集合,即使我正在对列表进行理解。目前我有如下代码: filteredList = {obj.index for obj in myObjectList if filter(obj) == True} 当我检查“myObjectList”的类型时,它是一个列表,但当我检查“filteredList”的类型时,它是一个集合。为什么要在列表中给我一个集合进行理解?使用大括号进行理解会生成一个集合或dict。您应该使用方括号

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

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

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

使用大括号进行理解会生成一个集合或dict。您应该使用方括号来代替:[obj.index for obj in…]

理解的结果不是基于您正在执行理解的数据类型。 这与你如何建立理解的结果有关。在本例中,您使用大括号进行理解,因此您得到了一个集合

请尝试以下方法:

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

这会将生成的obj.index放在由[]方括号定义的列表中,而不是一组{}方括号

对象的类型不是由您迭代的内容决定的,而是由对象周围的方括号决定的。你有{}而且没有k:v类型的行为,所以解释器认为你在试图做一套理解。Do filteredList=[…]以获取列表。的可能重复项