为了丰富学员们的课外知识,老师让我们助理分享这套Python系列教程。由于Python教程并非老师所写,所以不如老师的AI教学风趣幽默,望大家见谅!想要学习AI技术的新朋友可以去www.captainbed.net。本公众号由助理负责运营,只免费分享课外知识,不回复任何私信。


本篇文章我们来学习学习“列表”。下面就是一个有三个元素的列表:

>>> L = [123,'spam',1.23]  # A list of three different-type objects

>>> len(L)  # Number of items in the list

3

我们能够对列表进行索引、切片等操作,就像对字符串所做的操作那样:

>>> L[0]                 # Indexing by position

123

>>> L[:-1]               # Slicing a list returns a new list

[123,'spam']

>>> L + [4,5,6]        # Concatenation makes a new list too

[123,'spam',1.23,4,5,6]

>>> L                    # We're not changing the original list

[123,'spam',1.23]

Python的列表与其他语言中的数组有些类似,但是列表要强大得多。其中一个方面就是,列表没有固定类型的约束。例如,上个例子中接触到的列表,包含了三个完全不同类型的对象(一个整数、一个字符串,以及一个浮点数)。此外,列表没有固定大小,也就是说能够按照需要增加或减小列表大小,来响应其特定的操作:

>>> L.append('NI')           # Growing: add object at end of list

>>> L

[123,'spam',1.23,'NI']

>>> L.pop(2)                 # Shrinking: delete an item in the middle

1.23

>>> L                        # "del L[2]" deletes from a list

[123,'spam','NI']

这里,列表的append方法扩充了列表的大小并在列表的尾部插入一项;pop方法(或者等效的del语句)移除给定偏移量的一项,从而让列表减小。其他的列表方法可以在任意位置插入(insert)元素,按照值移除(remove)元素等。因为列表是可变的,大多数列表的方法都会就地改变列表对象,而不是创建一个新的列表:

>>> M = ['bb','aa','cc']

>>> M.sort()

>>> M

['aa','bb','cc']

>>> M.reverse()

>>> M

['cc','bb','aa']

例如,这里的列表sort方法,默认按照升序对列表进行排序,而reverse对列表进行翻转。这种情况下,这些方法都直接对列表进行了改变。