集合如何在Python中运行?

au_*_*889 1 python

>>> {x for x in 'spam'}
{'a', 'p', 's', 'm'}
Run Code Online (Sandbox Code Playgroud)

为什么改变订单?如果你看一个循环,它完美地工作:

>>> for x in 'spam':
...     print(x)
... 
s
p
a
m
>>> 
Run Code Online (Sandbox Code Playgroud)

che*_*ken 6

python(和集合论)中的集合不是有序的.所以当你遍历它们时,没有定义的顺序.

循环遍历字符串文字'spam'以创建包含该字符串中每个字符的集合.一旦你这样做,订单就消失了.

当您执行for循环时'spam',您正在对具有排序的字符串执行循环.


eat*_*eat 5

来自套装类型:

这些代表无序的,有限的唯一不可变对象集.因此,它们不能被任何下标索引 [因为在元素之间没有定义排序] .但是,它们可以迭代,内置函数len()返回集合中的项目数.集合的常见用途是快速成员资格测试,从序列中删除重复项,以及计算数学运算,例如交集,并集,差异和对称差异.

但如果你真的需要保留订单,那么请检查有序集.

无论如何,你可能真的想写>>> set('spam')而不是任何理解.