我正在写一个列表理解。我的目标是获取一个列表作为回报,但是由于某种原因,即使我对列表进行了理解,我也得到了一个集合。目前,我的代码如下:
filteredList = {obj.index for obj in myObjectList if filter(obj) == True}
当我检查“ myObjectList”的类型时,它是一个列表,但是当我检查“ filteredList”的类型时,它是一个集合。为什么对清单的理解会给我一套?
答案 0 :(得分:1)
理解的结果不基于您要进行理解的数据类型。
它与如何设置理解结果有关。在这种情况下,您将花括号用于理解,因此结果是set
。
尝试以下方法:
filteredList = [obj.index for obj in myObjectList if filter(obj) == True]
这会将结果obj.index
放在列表(由[]
括号定义)的列表内,而不是一组({}
括号)
答案 1 :(得分:0)
使用花括号进行理解会生成一个集合或字典。您应该改用方括号:if (form2 == null) {
form2 = new Form3();
}
form2.ShowDialog();