Python集合理解

时间:2013-07-17 12:05:01

标签: python python-3.x set

我刚开始学习python set comprehensions。为什么{ 2**x for x in {0,1,2,3,4} }会返回{8, 1, 2, 4, 16}而不是订购的{1, 2, 4, 8, 16}

1 个答案:

答案 0 :(得分:2)

从数学上讲,集合没有订单。在显示或迭代集合时,Python显然需要提供特定的顺序,但此顺序是任意的,不能依赖。但是,该订单是针对特定集合而固定的;迭代相同的,未修改的集合每次都会产生相同的顺序。