@@ -17,7 +17,7 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
17
17
.. method:: list.append(x)
18
18
:noindex:
19
19
20
- 把一个元素添加到链表的结尾 ,相当于 ``a[len(a):] = [x]``。
20
+ 把一个元素添加到列表的结尾 ,相当于 ``a[len(a):] = [x]``。
21
21
22
22
23
23
.. method:: list.extend(L)
@@ -29,19 +29,19 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
29
29
.. method:: list.insert(i, x)
30
30
:noindex:
31
31
32
- 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 ``a.insert(0, x)`` 会插入到整个链表之前 ,而 ``a.insert(len(a), x)`` 相当于 ``a.append(x)``。
32
+ 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 ``a.insert(0, x)`` 会插入到整个列表之前 ,而 ``a.insert(len(a), x)`` 相当于 ``a.append(x)``。
33
33
34
34
35
35
.. method:: list.remove(x)
36
36
:noindex:
37
37
38
- 删除链表中值为 *x* 的第一个元素。如果没有这样的元素,就会返回一个错误。
38
+ 删除列表中值为 *x* 的第一个元素。如果没有这样的元素,就会返回一个错误。
39
39
40
40
41
41
.. method:: list.pop([i])
42
42
:noindex:
43
43
44
- 从链表的指定位置删除元素 ,并将其返回。如果没有指定索引,``a.pop()`` 返回最后一个元素。元素随即从链表中被删除 (方法中 *i* 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。
44
+ 从列表的指定位置删除元素 ,并将其返回。如果没有指定索引,``a.pop()`` 返回最后一个元素。元素随即从列表中被删除 (方法中 *i* 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。
45
45
46
46
47
47
.. method:: list.clear()
@@ -53,32 +53,32 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
53
53
.. method:: list.index(x)
54
54
:noindex:
55
55
56
- 返回链表中第一个值为 *x* 的元素的索引。如果没有匹配的元素就会返回一个错误。
56
+ 返回列表中第一个值为 *x* 的元素的索引。如果没有匹配的元素就会返回一个错误。
57
57
58
58
59
59
.. method:: list.count(x)
60
60
:noindex:
61
61
62
- 返回 *x* 在链表中出现的次数 。
62
+ 返回 *x* 在列表中出现的次数 。
63
63
64
64
65
65
.. method:: list.sort()
66
66
:noindex:
67
67
68
- 对链表中的元素就地进行排序 。
68
+ 对列表中的元素就地进行排序 。
69
69
70
70
71
71
.. method:: list.reverse()
72
72
:noindex:
73
73
74
- 就地倒排链表中的元素 。
74
+ 就地倒排列表中的元素 。
75
75
76
76
.. method:: list.copy()
77
77
:noindex:
78
78
79
79
返回列表的一个浅拷贝。等同于 ``a[:]``。
80
80
81
- 下面这个示例演示了链表的大部分方法 ::
81
+ 下面这个示例演示了列表的大部分方法 ::
82
82
83
83
>>> a = [66.25, 333, 333, 1, 1234.5]
84
84
>>> print(a.count(333), a.count(66.25), a.count('x'))
@@ -108,13 +108,13 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
108
108
109
109
.. _tut-lists-as-stacks:
110
110
111
- 把链表当作堆栈使用
111
+ 把列表当作堆栈使用
112
112
---------------------
113
113
114
114
.. sectionauthor:: Ka-Ping Yee <ping@lfw.org>
115
115
116
116
117
- 链表方法使得链表可以很方便的做为一个堆栈来使用 ,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 :meth:`append` 方法可以把一个元素添加到堆栈顶。用不指定索引的 :meth:`pop` 方法可以把一个元素从堆栈顶释放出来。例如::
117
+ 列表方法使得列表可以很方便的做为一个堆栈来使用 ,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 :meth:`append` 方法可以把一个元素添加到堆栈顶。用不指定索引的 :meth:`pop` 方法可以把一个元素从堆栈顶释放出来。例如::
118
118
119
119
>>> stack = [3, 4, 5]
120
120
>>> stack.append(6)
@@ -135,12 +135,12 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
135
135
136
136
.. _tut-lists-as-queues:
137
137
138
- 把链表当作队列使用
138
+ 把列表当作队列使用
139
139
---------------------
140
140
141
141
.. sectionauthor:: Ka-Ping Yee <ping@lfw.org>
142
142
143
- 你也可以把链表当做队列使用 ,队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢(因为,为了一个元素,要移动整个列表中的所有元素)。
143
+ 你也可以把列表当做队列使用 ,队列作为特定的数据结构,最先进入的元素最先释放(先进先出)。不过,列表这样用效率不高。相对来说从列表末尾添加和弹出很快;在头部插入和弹出很慢(因为,为了一个元素,要移动整个列表中的所有元素)。
144
144
145
145
要实现队列,使用 `collections.deque`_,它为在首尾两端快速插入和删除而设计。例如::
146
146
@@ -315,7 +315,7 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
315
315
元组和序列
316
316
====================
317
317
318
- 我们知道链表和字符串有很多通用的属性 ,例如索引和切割操作。它们是 *序列* 类型(参见 `Sequence Types — list, tuple, range`_ )中的两种。因为 Python 是一个在不停进化的语言,也可能会加入其它的序列类型,这里介绍另一种标准序列类型: *元组* 。
318
+ 我们知道列表和字符串有很多通用的属性 ,例如索引和切割操作。它们是 *序列* 类型(参见 `Sequence Types — list, tuple, range`_ )中的两种。因为 Python 是一个在不停进化的语言,也可能会加入其它的序列类型,这里介绍另一种标准序列类型: *元组* 。
319
319
320
320
一个元组由数个逗号分隔的值组成,例如::
321
321
@@ -339,7 +339,7 @@ Python 的列表数据类型包含更多的方法。这里是所有的列表对
339
339
([1, 2, 3], [3, 2, 1])
340
340
341
341
342
- 如你所见,元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可以有或没有括号,不过经常括号都是必须的(如果元组是一个更大的表达式的一部分)。不能给元组的一个独立的元素赋值(尽管你可以通过联接和切割来模拟)。还可以创建包含可变对象的元组,例如链表 。
342
+ 如你所见,元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可以有或没有括号,不过经常括号都是必须的(如果元组是一个更大的表达式的一部分)。不能给元组的一个独立的元素赋值(尽管你可以通过联接和切割来模拟)。还可以创建包含可变对象的元组,例如列表 。
343
343
344
344
虽然元组和列表很类似,它们经常被用来在不同的情况和不同的用途。元组有很多用途。例如 (x, y) 坐标对,数据库中的员工记录等等。元组就像字符串, `不可变的`_。通常包含不同种类的元素并通过分拆(参阅本节后面的内容) 或索引访问(如果是 `namedtuples`_,甚至可以通过属性)。列表是 `可变的`_ ,它们的元素通常是相同类型的并通过迭代访问。
345
345
@@ -408,9 +408,9 @@ Python 还包含了一个数据类型 —— *set* (集合)。集合是一
408
408
字典
409
409
============
410
410
411
- 另一个非常有用的 Python 内建数据类型是 *字典* (参见 `Mapping Types — dict`_ )。字典在某些语言中可能称为 联合内存 ( associative memories )或 联合数组 ( associative arrays )。序列是以连续的整数为索引,与此不同的是,字典以 *关键字* 为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以做为关键字,如果它直接或间接的包含了可变对象,就不能当做关键字。不能用链表做关键字,因为链表可以用索引 、切割或者 :meth:`append` 和 :meth:`extend` 等方法改变。
411
+ 另一个非常有用的 Python 内建数据类型是 *字典* (参见 `Mapping Types — dict`_ )。字典在某些语言中可能称为 联合内存 ( associative memories )或 联合数组 ( associative arrays )。序列是以连续的整数为索引,与此不同的是,字典以 *关键字* 为索引,关键字可以是任意不可变类型,通常用字符串或数值。如果元组中只包含字符串和数字,它可以做为关键字,如果它直接或间接的包含了可变对象,就不能当做关键字。不能用列表做关键字,因为列表可以用索引 、切割或者 :meth:`append` 和 :meth:`extend` 等方法改变。
412
412
413
- 理解字典的最佳方式是把它看做无序的键: *值对* (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。一对大括号创建一个空的字典: ``{}`` 。初始化链表时 ,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。
413
+ 理解字典的最佳方式是把它看做无序的键: *值对* (key:value 对)集合,键必须是互不相同的(在同一个字典之内)。一对大括号创建一个空的字典: ``{}`` 。初始化列表时 ,在大括号内放置一组逗号分隔的键:值对,这也是字典输出的方式。
414
414
415
415
字典的主要操作是依据键来存储和析取值。也可以用 ``del`` 来删除键:值对(key:value)。如果你用一个已经存在的关键字存储值,以前为该关键字分配的值就会被遗忘。试图从一个不存在的键中取值会导致错误。
416
416
@@ -527,7 +527,7 @@ Python 还包含了一个数据类型 —— *set* (集合)。集合是一
527
527
528
528
``while`` 和 ``if`` 语句中使用的条件不仅可以使用比较,而且可以包含任意的操作。
529
529
530
- 比较操作符 ``in`` 和 ``not in`` 审核值是否在一个区间之内。操作符 ``is`` 和 ``is not`` 比较两个对象是否相同;这只和诸如链表这样的可变对象有关 。所有的比较操作符具有相同的优先级,低于所有的数值操作。
530
+ 比较操作符 ``in`` 和 ``not in`` 审核值是否在一个区间之内。操作符 ``is`` 和 ``is not`` 比较两个对象是否相同;这只和诸如列表这样的可变对象有关 。所有的比较操作符具有相同的优先级,低于所有的数值操作。
531
531
532
532
比较操作可以传递。例如 ``a < b == c`` 审核是否 ``a`` 小于 ``b`` 并且 ``b`` 等于 ``c``。
533
533
@@ -560,7 +560,7 @@ Python 还包含了一个数据类型 —— *set* (集合)。集合是一
560
560
(1, 2, 3) == (1.0, 2.0, 3.0)
561
561
(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)
562
562
563
- 需要注意的是如果通过 ``<`` 或者 ``>`` 比较的对象只要具有合适的比较方法就是合法的。比如,混合数值类型是通过它们的数值就行比较的 ,所以 0 是等于 0.0 。否则解释器将会触发一个 `TypeError`_ 异常,而不是提供一个随意的结果。
563
+ 需要注意的是如果通过 ``<`` 或者 ``>`` 比较的对象只要具有合适的比较方法就是合法的。比如,混合数值类型是通过它们的数值进行比较的 ,所以 0 是等于 0.0 。否则解释器将会触发一个 `TypeError`_ 异常,而不是提供一个随意的结果。
564
564
565
565
566
566
.. rubric:: Footnotes
0 commit comments