声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是要由所写,所以不如我的人工智能技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!

在Python中,超出列表末尾之外的索引将会导致错误,对列表末尾范围之外赋值也是如此:

>>> L

[123,'spam','NI']

>>> L[99]

...error text omitted...

IndexError: list index out of range



>>> L[99] = 1

...error text omitted...

IndexError: list assignment index out of range

这是有意而为之的,由于去给一个列表边界外的元素赋值,往往会得到一个错误(而在C语言中情况比较糟糕,因为它不会像Python这样进行错误检查,C语言情况下会导致程序依然可以运行,但是运行中某个时刻程序就会崩溃)。在Python中,并不是默默地增大列表作为响应,而是会提示错误。为了让一个列表增大,我们可以调用append这样的列表方法。

Python核心数据类型的一个优秀的特性就是它们支持任意的嵌套。能够以任意的组合对其进行嵌套,并可以多个层次进行嵌套(例如,能够让一个列表包含一个字典,并在这个字典中包含另一个列表等)。这种特性的一个直接的应用就是实现矩阵,或者Python中的“多维数组”。一个嵌套列表的列表能够完成下面这个基本的操作:

>>> M = [[1,2,3],# A 3 × 3 matrix,as nested lists

[4,5,6],# Code can span lines if bracketed

[7,8,9]]



>>> M

[[1,2,3],[4,5,6],[7,8,9]]

这里,我们编写了一个包含3个其他列表的列表。其效果就是表现了一个3×3的数字矩阵。这样的结构可以通过多种方法获取元素。

>>> M[1]     # Get row 2

[4,5,6]



>>> M[1][2] # Get row 2,then get item 3 within the row

6

这里的第一个操作读取了整个第二行,第二个操作读取了那行的第三个元素。串联索引操作可以逐层深入地获取嵌套的对象结构。


我的微信公众号是“人工智能知识分享”

python系列教程41_嵌套