Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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_List_Set - Fatal编程技术网

Python 将列表转换为集合是否会改变元素的顺序?

Python 将列表转换为集合是否会改变元素的顺序?,python,list,set,Python,List,Set,当我做以下事情时: U = [(1.0, 0.0), (0.0, 1.0)] set(U) 它给了我: {(0.0, 1.0), (1.0, 0.0)} 我只想把列表转换成一个集合。有什么帮助吗 谢谢没有订购套装。字典也没有定购。如果要保留特定的顺序,请使用列表 >>> ''.join(set("abcdefg")) 'acbedgf' >>> ''.join(set("gfedcba")) 'acbedgf' >>> ''.join(s

当我做以下事情时:

U = [(1.0, 0.0), (0.0, 1.0)]
set(U)
它给了我:

{(0.0, 1.0), (1.0, 0.0)}
我只想把列表转换成一个集合。有什么帮助吗


谢谢

没有订购套装。字典也没有定购。如果要保留特定的顺序,请使用列表

>>> ''.join(set("abcdefg"))
'acbedgf'
>>> ''.join(set("gfedcba"))
'acbedgf'
>>> ''.join(set("1234567"))
'1325476'
>>> ''.join(set("7654321"))
'1325476'
显然,当你在一个集合上迭代时,一定会出现某种顺序。但是顺序是一个不能指定的任意顺序

以下是我最喜欢的:

>>> {'apple', 'banana'}
{'banana', 'apple'}
>>> {'banana', 'apple'}
{'apple', 'banana'}

顺序受哈希冲突的影响,因此它不仅取决于集合的内容,还取决于插入顺序。但是你对顺序没有真正的控制。

我想让你困惑的是元组的对称性。将列表转换为集合不会影响元组中项目的排列,而是影响元组的顺序。这是因为集合本质上是无序的。这里是另一个不对称元组的例子

>>> U = [(2.0, 0.0), (0.0, 1.0)]
>>> set(U)
{(0.0, 1.0), (2.0, 0.0)}

这是一个元组列表。你说的“改变顺序”是指“改变顺序”吗?集合没有顺序,它们显示和/或迭代的顺序完全是任意的。
set
s本质上是无序的。它需要是一个
set
,还是只删除重复项就可以了?
{(0.0,1.0)、(1.0,0.0)}
是一个集合。我认为让OP感到困惑的是,他们认为元组中元素的顺序已经重新排列(因为两个元组是对称的)。你可能想解释一下。@jurgenreza:你知道,只向OP解释事情要比让随机的其他人解释要有效得多。无论如何,我认为你是不对的,天哪!我的意思是无意冒犯,我想既然你的答案完整而好,你可以在上面加一行。多好的态度啊@没有冒犯你。但这是我的一个恼火之处——我经常被问到这样一个问题,一个已经知道我写过的信息的人会问我一个通常足够的答案——因为他们认为其他人可能完全不理解某个关键点。这个人似乎总是很有知识,能够自己扩展答案,但总是让我去做。所以:没什么害处,只是以后不要再提出这样的要求。好吧,我明白你的意思。这似乎是个人喜好。我有时会收到相同类型的评论,并发现它们对改进我的答案很有用。