我曾在Pluralsight上看到这个测试题:
给出以下集合:
x = {'a', 'b', 'c', 'd'}
y = {'c', 'e', 'f'}
z = {'a', 'g', 'h', 'i'}
x | y ^ z
的值是多少?期望的答案是:
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}
将集合合并(自动丢弃重复项),并按从小到大的顺序排序。
我的问题是:
- 这个表达式叫什么?
- 为什么我在三个不同的Python版本上得到了三个不同的结果?
在Ubuntu 18.04上的Python 3.7.5中的结果:
{'c', 'h', 'f', 'd', 'b', 'i', 'g', 'a', 'e'}
在Ubuntu 18.04上使用Python 2.17.17rc1的结果:
set(['a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h'])
在Windows 10上的Python 3.7.2上的结果:
{'a', 'd', 'h', 'f', 'b', 'g', 'e', 'c', 'i'}
这是我用来进行此操作的相同代码的 Repl: https://repl.it/repls/RudeMoralWorkplace 我想了解这些表达式背后发生的事情,以便可以驳斥为什么我会得到不同的结果。
abcd
有点误导人。 - CodeSpent