问题描述
我还是Python的新手,我读过很多遍关于python元组 本身的信息,例如W3Schools网站上的https://www.w3schools.com/python/python_tuples.asp。我还注意到,Python文档并未说明需要“排序”的任何内容。我尝试创建一个无序元组,这就是我得到的:
我通过以下代码执行此操作:
tup = (2,8,3)
因此不需要订购元组吗?
解决方法
元组是已排序且不可更改的集合。 允许重复的成员。在Tuple中,有序集合意味着Tuple会记录接收到的元素的顺序并将其按原样存储。不允许更改位置/项目分配。
maven-jar-plugin
设置是无序和未索引的集合。 没有重复的成员。集合是无序集合,意味着集合不会记录元素位置或插入顺序。
>>> tup = (2,2,8,3)
>>> tup
(2,3)
,
您误解了ordered
的含义。有序文档意味着有关元组中元素顺序的信息存储在数据结构内部。
与unordered
相反,当元素顺序的信息未存储在数据结构中且未保留时,即unordered
数据结构在将元素存储到内部存储器之前对元素进行了排序,因此会丢失有关元素顺序的信息原始数据。
您可能认为ordered
意味着元素在元组内排序,即您可能认为(3,7,9,15)
是有序的,而(9,15,3)
不是。
元组作为其元素的序列存储在内存中。因此,总是ordered
。像数组一样也总是有序的。但是某些结构可能无法保持元素顺序,例如,当且仅当bit(i) == 1
被设置时,才让我们用位向量i
来表示一组数字,否则bit为0。因此{{1 }}代表一组数字0 0 1 0 1
。此结构是无序的,这意味着由于表示形式的原因,没有保留顺序。换句话说,{2,4}
表示它始终存储在内存中。
这取决于“有序”的含义。 tuple
是不可变的序列。它是由其他序列或生成器构建的,无论事物迭代其值的顺序是您在tuple
中获得的顺序。
因此,tuple
并不是按照排序顺序来排序的-只是在构造过程中添加项目的时间顺序。