探索 Python 类型的层次结构
2007-03-29 12:17:43 来源:WEB开发网核心提示: 清单 5. 修改 list>>> l = []>>> l[0] = 0# The list is emptyTraceback (most recent call last):File "<stdin>", line 1,
清单 5. 修改 list
>>> l = []
>>> l[0] = 0 # The list is empty
Traceback (most recent call last):
File "<stdin>", line 1, in ?
IndexError: list assignment index out of range
>>> l.append(0)
>>> l
[0]
>>> l[0] = 1
>>> l
[1]
正如前一个例子所演示的,尝试修改不存在的 list 条目会导致出现错误。这一点意义重大,并演示了 Python 方法生成错误的情况。当问题较为严重时,将会产生一个错误,如果问题较小并且可以很容易地处理,则忽略它。
异构的可变序列
您可能想了解更为复杂的修改。通过综合切片知识以及如何修改 list 的知识,您应该已经获得了非常重要的见识:可以通过多种方式修改列表。就像 tuple 一样,list 也可以持有不同类型的数据(或不同类型的对象),这就是我所说的异构的可变序列。这两种功能在清单 6 中进行了更完整的描述。
清单 6. 异构的可变 list
>>> l=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[2] = 2
>>> type(l[2])
<type 'int'>
>>> l[2] = "two" # Change the type of an element
>>> ,ype(l[2])
<type 'str'>
>>> l
[0, 1, 'two', 3, 4, 5, 6, 7, 8, 9]
>>> l[2] = l[2:5] * 2
>>> l
[0, 1, ['two', 3, 4, 'two', 3, 4], 3, 4, 5, 6, 7, 8, 9]
>>> del(l[2]) # Remove single element
>>> l
[0, 1, 3, 4, 5, 6, 7, 8, 9]
>>> l[1:3] = [] # Remove a slice
>>> l
[0, 4, 5, 6, 7, 8, 9]
更多精彩
赞助商链接