6

2.x 版本的 python 文档中,它明确指出有七种序列数据类型。一段时间后(在同一页面上),文档继续讨论集合和元组,这两者都不包括在上述七个中。有谁知道究竟是什么定义了序列类型?我的直觉定义具有非常适合该法案的集合和元组,而且我没有任何运气找到明确的官方定义。

谢谢!

4

4 回答 4

5

序列”这个词暗示了一个顺序,但集合并不是一个特定的顺序。

于 2013-01-30T09:11:22.607 回答
0

元素索引是 Python序列的基本概念。如果您查看序列操作表,您会看到一些直接使用索引的操作:

s[i]        ith item of s, origin 0 (3)
s[i:j]      slice of s from i to j  (3)(4)
s[i:j:k]    slice of s from i to j with step k  (3)(5)
s.index(i)  index of the first occurence of i in s   

集合和字典没有元素索引的概念,因此不能被视为序列。

于 2013-01-30T09:14:02.600 回答
0

在数学中,非正式地说,序列是对象(或事件)的有序列表。像集合一样,它包含成员(也称为元素或术语)。有序元素的数量(可能无限)称为序列的长度。与集合不同,顺序很重要,完全相同的元素可以在序列中的不同位置多次出现。最准确地说,序列可以定义为一个函数,其域是一个可数的全序集,例如自然数。

http://en.wikipedia.org/wiki/Sequence

;)

于 2013-01-30T09:14:29.110 回答
0

请参阅Python 词汇表

顺序

__getitem__()一个支持通过特殊方法使用整数索引进行有效元素访问的迭代,并定义了一个len()返回序列长度的方法。一些内置的序列类型是 list、str、tuple 和 unicode。请注意, dict 也支持__getitem__()and __len__(),但被认为是映射而不是序列,因为查找使用任意不可变键而不是整数。

元组是序列。集合不是序列——它们没有顺序,也不能被索引set[index]——它们甚至没有任何索引的概念。(不过,它们是iterable- 您可以迭代它们的项目。)

于 2013-01-30T09:16:38.377 回答