Python:以一组数字排序

kam*_*ame 1 python set

使用此代码:

print set(a**b for a in range(2, 5) for b in range(2, 5))
Run Code Online (Sandbox Code Playgroud)

我得到了这个答案:

set([64, 256, 4, 8, 9, 16, 81, 27])
Run Code Online (Sandbox Code Playgroud)

为什么没有排序?

Pab*_*ruz 7

集合不是python或任何其他语言的有序集合.

通常使用散列键(哈希码)来实现集合.因此,顺序可能与如何使用散列函数而不是其元素的自然顺序有关.

如果您需要订购,请考虑使用清单.

  • @Andrew:真的吗?听起来像*回答我. (5认同)
  • `排序(设置(a**b表示范围(2,5)范围内的b(2,5)))`将其转换为有序列表 (3认同)