本教程首先列出了Python列表的六个定义特征。最后一个是列表是动态的。您已经在上面的部分中看到了很多这方面的例子。将项目添加到列表时,它会根据需要增长:
>>> a = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> a[2:2] = [1, 2, 3]
>>> a += [3.14159]
>>> a
['foo', 'bar', 1, 2, 3, 'baz', 'qux', 'quux', 'corge', 3.14159]兹',' qux','quux','corge',3.14159]
同样,列表会缩小以适应项目的删除:
>>> a = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> a[2:3] = []
>>> del a[0]
>>> a
['bar', 'qux', 'quux', 'corge']
五. 列表是可变的
列表是可变数据类型。创建列表后,可以随意添加,删除,移动和移动元素。Python提供了多种修改列表的方法。
修改单个列表值
列表中的单个值可以通过索引和简单赋值来替换:
>>> a = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> a
['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> a[2] = 10
>>> a[-1] = 20
>>> a
['foo', 'bar', 10, 'qux', 'quux', 20]
您可能还记得]Python中的]字符串和字符数据教程,您无法使用字符串执行此操作:
>>> s = 'foobarbaz'
>>> s[2] = 'x'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
可以使用以下del命令删除列表项:
>>> a = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> del a[3]
>>> a
['foo', 'bar', 'baz', 'quux', 'corge']
如果要一次更改列表中的多个连续元素,该怎么办?Python允许使用切片分配,具有以下语法:
a[m:n] = <iterable>
同样,暂时将迭代视为列表。这种分配替换的指定切片a用<iterable>:
>>> a = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
>>> a[1:4]
['bar', 'baz', 'qux']
>>> a[1:4] = [1.1, 2.2, 3.3, 4.4, 5.5]
>>> a
['foo', 1.1, 2.2, 3.3, 4.4, 5.5, 'quux', 'corge']
>>> a[1:6]
[1.1, 2.2, 3.3, 4.4, 5.5]
>>> a[1:6] = ['Bark!']
>>> a
['foo', 'Bark!', 'quux', 'corge']
插入的元素数量不必等于替换的数量。Python只是根据需要增大或缩小列表。