为了丰富学员们的课外知识,老师让我们助理分享这套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对列表进行翻转。这种情况下,这些方法都直接对列表进行了改变。