它为什么显示类型'列表'当我在python 3中使用set函数?

时间:2017-09-13 17:17:50

标签: python python-3.x python-3.6

a = [3.2,1,3,1,4,1,3423] 
s = sorted(set([aa for aa in a]))
print(type(s))
output - class 'list'

有人可以解释一下!为什么它会显示' list'而不是设置' 。在没有排序方法的情况下运行程序后,它会显示出类'设置。

1 个答案:

答案 0 :(得分:0)

sorted(..)是构建列表的函数。它没有考虑“源”的类型,它将迭代作为输入并使用该输入构造列表。或者documented

  

从iterable中的项目返回新排序列表

由于sorted(..)是由Python本身实现的,并且没有利用类本身的某些协议,因此甚至不可能构造为每种集合类型排序的集合类型。

此外,Python中的 set是未经编辑的:如果使用元素构造集合,则无法保证该顺序与插入顺序相同,也不能保证更新集合时,顺序将相同。