接受可哈希对象(如dict键或set项)的容器。因此,一个字典只能有一个值为1、1.0或True等的键(注意:允许稍微简化的散列冲突,但这些值被认为是相等的)
我的问题是:解析顺序是否定义良好,生成的对象是否可跨实现进行预测?例如,OSX Python 2.7.11和3.5.1对dict的解释如下:
>>> { True: 'a', 1: 'b', 1.0: 'c', (1+0j): 'd' }
{True: 'd'}在这种情况下,似乎保留了第一个键和最后一个值。
类似的,在set的情况下
>>> { True, 1, 1.0, (1+0j) }
set([(1+0j)])这里看起来最后一项被保留了下来。
但是(正如评论中提到的):
>>> set([True, 1, 1.0])
set([True])现在,iterable中的第一个被保留下来了。
文档指出,项的顺序(例如在dict.items中)是未定义的,但是我的问题指的是构造dict或set对象的结果。
https://stackoverflow.com/questions/34623846
复制相似问题