-3
a = [3.2,1,3,1,4,1,3423]
s = sorted(set([aa for aa in a]))
print(type(s))
output - class 'list'
有人可以解释这一点!为什么它显示'list'而不是'set'。当我运行程序时没有排序的方法,它显示了class'set。为什么它会在python 3中使用set函数时显示类型'list'?
a = [3.2,1,3,1,4,1,3423]
s = sorted(set([aa for aa in a]))
print(type(s))
output - class 'list'
有人可以解释这一点!为什么它显示'list'而不是'set'。当我运行程序时没有排序的方法,它显示了class'set。为什么它会在python 3中使用set函数时显示类型'list'?
sorted(..)
是构造列表的函数。它没有考虑到“源”的类型,它需要一个可迭代的输入并构造一个包含该输入的列表。或者如documented:
返回在迭代中有关项目的新的排序列表。
由于sorted(..)
由Python本身来实现,并且不采取类本身的一些协议的优势,它甚至是不可能构建一个排序为每一个集合类型集合类型。
此外,set
S IN的Python是unodered:如果您构建一套具有的元素,则无法保证该订单将是一样的插入顺序,也不是说当你更新的顺序将是相同的集合。
因为'sorted'创建一个**列表**,它被排序。一组顺序没有顺序... –
'sorted'从你给它的集合中创建一个列表。你可以[阅读它的文档](https://docs.python.org/3/library/functions.html#sorted)来看看这个。 –
进入的好习惯是检查官方文档。 https://docs.python.org/3.6/library/functions.html#sorted – pvg