为什么 python 3 set() 函数有时会对列表进行排序? [重复]

问题描述 投票:0回答:0

Python 3 中的 set() 函数偶尔会对列表进行排序,但我不知道标准是什么。

a = [2,3,5,5,4,1]
b = [12,13,15,15,14,11]
c = [29,51,87,87,72,12]
print(f"list form: {a}, set form: {set(a)}")
print(f"list form: {b}, set form: {set(b)}")
print(f"list form: {c}, set form: {set(c)}")

输出:

list form: [2, 3, 5, 5, 4, 1], set form: {1, 2, 3, 4, 5}
list form: [12, 13, 15, 15, 14, 11], set form: {11, 12, 13, 14, 15}
list form: [29, 51, 87, 87, 72, 12], set form: {72, 12, 51, 87, 29}

在上面的示例中,如果我们查看它们的索引,则整数“排序”相同。

它按照索引

5->0->1->4->2->3
的顺序进行。

但是,它只对列表

a
b
进行排序,并以某种一致的方式重新排序
c
,但我正在努力理解其决策背后的逻辑。

有人知道吗?

python python-3.x sorting set
© www.soinside.com 2019 - 2024. All rights reserved.