为什么对一个范围内的数字调用n^2会产生无序的结果


>>> nums = {n**2 for n in range(10)}
>>> nums
{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}

我不明白为什么数字乱了?它不应该是{0,1,4,9…}吗?

这是因为您创建了一个集合,而集合是无序的。如果你想要订单,你应该使用标准的列表理解:

>>> nums = [n**2 for n in range(10)]
>>> nums
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

您只是在使用setset是一个无序的数据结构。

一种方法可以是使用CCD_ 3方法。

sorted_lst = sorted(nums)

输出

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

最新更新