Python 元组真的需要排序吗?
Do Python tuples really need to be ordered?
我还是 Python 的新手,我已经多次读到 python 元组 是 本身“有序”的,就像这里W3Schools 网站:https://www.w3schools.com/python/python_tuples.asp。我还注意到 Python 文档没有说明需要“订购”。我尝试创建一个无序元组,这就是我得到的:
我用这条线做了这个:
tup = (2, 8, 3)
所以元组不需要排序?
元组 是有序 且不可更改 的集合。 允许重复成员。在 Tuple 中,有序集合意味着 Tuple 确实记录它收到的元素的顺序并按原样存储。不允许更改 position/item 分配。
>>> tup = (2,2,8,3)
>>> tup
(2, 2, 8, 3)
Set 是一个 unordered 和 unindexed 的集合。 没有重复的成员。 集合,是一个无序集合,意思是集合不记录元素位置或插入顺序。
>>> sample_set = { 2,2,8,3 }
>>> sample_set
{8, 2, 3}
这取决于“有序”的含义。 tuple
是一个不可变序列。它是从其他一些序列或生成器构建的,无论该事物迭代其值的顺序是您在 tuple
.
中获得的顺序
因此,tuple
不是排序意义上的排序 - 它只是在构造期间添加项目的时间顺序。
你miss-understood意思ordered
。有序文档意味着有关元组中元素顺序的信息存储在数据结构中。不是元组的元素是按排序顺序排列的。
与 unordered
相反,当有关元素顺序的信息未存储在数据结构中且未保留时,即 unordered
数据结构在将元素存储到内部存储器之前对元素进行排序,因此丢失了有关顺序的信息原始源数据的元素。
您可能认为 ordered
意味着元素在元组内排序,即您可能认为 (3, 7, 9, 15)
是有序的,但 (9, 7, 15, 3)
不是。
元组作为其元素的序列存储在内存中。因此总是 ordered
。就像数组也总是有序的。但是有些结构可能不保持元素的顺序,例如让我们用位向量表示一组数字,当且仅当 i
在集合中时,bit(i) == 1
,否则位为 0。因此 0 0 1 0 1
代表一组数字{2, 4}
。这种结构是无序的,这意味着由于表示形式的原因,顺序不会被保留。换句话说unordered
意味着它存储在内存中总是排序。
我还是 Python 的新手,我已经多次读到 python 元组 是 本身“有序”的,就像这里W3Schools 网站:https://www.w3schools.com/python/python_tuples.asp。我还注意到 Python 文档没有说明需要“订购”。我尝试创建一个无序元组,这就是我得到的:
我用这条线做了这个:
tup = (2, 8, 3)
所以元组不需要排序?
元组 是有序 且不可更改 的集合。 允许重复成员。在 Tuple 中,有序集合意味着 Tuple 确实记录它收到的元素的顺序并按原样存储。不允许更改 position/item 分配。
>>> tup = (2,2,8,3)
>>> tup
(2, 2, 8, 3)
Set 是一个 unordered 和 unindexed 的集合。 没有重复的成员。 集合,是一个无序集合,意思是集合不记录元素位置或插入顺序。
>>> sample_set = { 2,2,8,3 }
>>> sample_set
{8, 2, 3}
这取决于“有序”的含义。 tuple
是一个不可变序列。它是从其他一些序列或生成器构建的,无论该事物迭代其值的顺序是您在 tuple
.
因此,tuple
不是排序意义上的排序 - 它只是在构造期间添加项目的时间顺序。
你miss-understood意思ordered
。有序文档意味着有关元组中元素顺序的信息存储在数据结构中。不是元组的元素是按排序顺序排列的。
与 unordered
相反,当有关元素顺序的信息未存储在数据结构中且未保留时,即 unordered
数据结构在将元素存储到内部存储器之前对元素进行排序,因此丢失了有关顺序的信息原始源数据的元素。
您可能认为 ordered
意味着元素在元组内排序,即您可能认为 (3, 7, 9, 15)
是有序的,但 (9, 7, 15, 3)
不是。
元组作为其元素的序列存储在内存中。因此总是 ordered
。就像数组也总是有序的。但是有些结构可能不保持元素的顺序,例如让我们用位向量表示一组数字,当且仅当 i
在集合中时,bit(i) == 1
,否则位为 0。因此 0 0 1 0 1
代表一组数字{2, 4}
。这种结构是无序的,这意味着由于表示形式的原因,顺序不会被保留。换句话说unordered
意味着它存储在内存中总是排序。