我有一个整数的list排序。但我想删除重复项,所以我使用内置的function集,预计它不会改变位置,但只是为了删除重复项。

它导致我从排序列表中更改了负整数的位置!

从排序列表中删除重复项!我已经尝试了内置集来删除重复但最终改变了负整数的位置

lis=[0,-1,,-1,3,3,1,10]
lis.sort()
l=set(lis)
print(l)

我期望的答案是[-1,0,1,3],但实际输出是[0,1,3,-1]。

分析解答

集合是无序集合,因此它将更改顺序。

Being an unordered collection, sets do not record element position or order of insertion.

https://docs.python.org/3/library/stdtypes.html#set-types-set-frozenset

要对list进行排序并删除重复项,请尝试

l = sorted(set(lis))