gpt4 book ai didi

python - 为什么 list(set(a+b)) 返回有序列表?它总是返回有序列表吗?

转载 作者:行者123 更新时间:2023-11-28 22:11:07 25 4
gpt4 key购买 nike

我有两个整数列表。我将列表的元素组合起来创建新的列表而不重复。我想要对新列表进行排序。但是当我尝试使用 set 组合时,它会返回一个有序列表。我想知道为什么它返回一个有序列表?它总是 True 吗?

我尝试了不同的列表值,它返回了有序列表

a = [1,1,2,3,5,8,13,14,15,16]
b = [1,1,2,3,4,5,6,7,8,9,10,11,12]
c = list(set(a+b))
print(c)

结果是:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

最佳答案

由于集合是无序的,所以将集合转换为列表后得到的列表不可能是有序的。

来自文档:https://docs.python.org/3/tutorial/datastructures.html#sets

A set is an unordered collection with no duplicate elements.

这是一个非常简单的示例,其中 order 失败

a = [1,5]
b = [1,10,20]
c = list(set(a+b))
print(c)
#[1, 10, 20, 5]

要对组合列表进行排序,只需使用 sorted

In [2]: a = [1,5]                                                                                                                             

In [3]: b = [1,10,20]

In [5]: c = list(set(a+b))

In [6]: sorted(c)
Out[6]: [1, 5, 10, 20]

关于python - 为什么 list(set(a+b)) 返回有序列表?它总是返回有序列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56132343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com