Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:按顺序复制一个集合?_Python - Fatal编程技术网

Python:按顺序复制一个集合?

Python:按顺序复制一个集合?,python,Python,在Python中,是否可以按照与原始集相同的顺序复制集?例如,而不是: >>> s = {'r','g','b'} >>> t = {i for i in s} >>> t set(['r', 'b', 'g']) >>> t是否可以设置为: {'r','g','b'} 尝试从集合中操作OrderedDict,请参阅 那你为什么不使用列表呢?不,集合是没有顺序的。如果您想要订单,您需要另一个数据结构-一个列表或订单集。

在Python中,是否可以按照与原始集相同的顺序复制集?例如,而不是:

>>> s = {'r','g','b'}
>>> t = {i for i in s}
>>> t
set(['r', 'b', 'g'])
>>> 
t
是否可以设置为:

{'r','g','b'}

尝试从
集合
中操作
OrderedDict
,请参阅


那你为什么不使用列表呢?不,集合是没有顺序的。如果您想要订单,您需要另一个数据结构-一个
列表
订单集
。@gjdanis集合没有订单,因此您不能复制原始订单,因为没有订单可以开始。@gjdanis但没有订单。@gjdanis有几个。最重要的是,它的方式更有效。如果您有一个订单,那么该订单是项目属性的一部分,因此很难识别具有相同值(但位置不同)的项目。集合使用哈希表实现,因此它们具有O(1)访问权限;列表不能工作,而是具有O(N)访问权限。如果有一个数据结构可以支持一切(高效访问、唯一性、顺序),那么这将是难以置信的酷,但这根本不可能;所以你必须决定你需要什么,你能传递什么。
>>> from collections import OrderedDict
>>> x = ['a','b','c','b','c']
>>> list(OrderedDict.fromkeys(x))
['a', 'b', 'c']