Python中集合更改顺序中的元组唯一元素

Python中集合更改顺序中的元组唯一元素,python,set,Python,Set,我有一个重复的数字元组,只想保留唯一的项目,但不改变顺序。这项工作: 值=(30.0,30.0,30.0,15.0,30.0]) 打印集(值) 返回: set([30.0, 15.0]) 但当我尝试时: values = (2, 1, 2, 1) 它返回: set([1, 2]) 我的问题是,为什么在第二个示例中它不保持顺序。集合没有顺序的概念,但您可以使用来实现您想要的: >>> from collections import OrderedDict >>&

我有一个重复的数字元组,只想保留唯一的项目,但不改变顺序。这项工作:

值=(30.0,30.0,30.0,15.0,30.0])
打印集(值)

返回:

set([30.0, 15.0])
但当我尝试时:

values = (2, 1, 2, 1)
它返回:

set([1, 2])

我的问题是,为什么在第二个示例中它不保持顺序。

集合没有顺序的概念,但您可以使用来实现您想要的:

>>> from collections import OrderedDict
>>>
>>> values = (2, 1, 2, 1)
>>> list(OrderedDict.fromkeys(values))
[2, 1]
>>>
>>> values = (30.0, 30.0, 30.0, 15.0, 30.0)
>>> list(OrderedDict.fromkeys(values))
[30.0, 15.0]

集合没有顺序。正如@SimeonVisser所说的,没有重复元素。重复问题:这个问题似乎离题了,因为OP应该。说OP不应该提出重复问题是合理的批评,但是攻击他没有阅读他可能不知道的文档是没有建设性的,并且感到敌意。谢谢@西蒙·维瑟也是。