列表的创建: 列表和数组有着很大的相似之处,列表由一系列按照特定顺序排列的元素组成。列表的元素可以是任意的,其中的元素可以没有任何的关系。
在python中,列表用方括号([ ])来表示,并用逗号来分隔其中的元素。
如:a = [1,“name”,b],c = [1,2,2,3,4],d = [“a”,“b”,“c”]……
如果你让python打印一个列表,它将是这样的:
>>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>> print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']
可以看到方括号也被打印了出来,这表明了bicycles变量是一个列表类型。
访问列表元素: 列表元素的访问和数组一样,使用索引值访问列表元素:
>>> print(bicycles[0])
trek
>>> print(bicycles[3])
redline
要注意,索引值是从0开始的,在计算机中,0经常被用来表示第一个的意思。
python提供了反向访问的机制,如果你给出的索引值是-1的话,python将访问最后一个列表元素;如果是-2的话,倒数第二个元素将被访问;以此类推。
>>> print(bicycles[-1])
specialized
>>> print(bicycles[-3])
cannondale
你可以使用索引值在列表中取出你所需要的数据进行使用,同时你也可以对取出的数据进行操作,这都是被允许的。
>>> print("My bicycle is a " + bicycles[0].title() + ".")
My bicycle is a Trek.
修改列表元素: 修改列表元素十分简单,你只需要将对应的索引值赋予新的值就可以将对应索引值的元素改为新的值:
>>> bicycles[0] = 'ducati'
>>> print(bicycles[0])
ducati
在列表中添加元素: 在列表中添加元素分两种,一种是在列表末尾添加元素,使用append()方法,接收一个待添加元素的参数。
>>> bicycles.append('suzuki')
>>> print(bicycles)
['ducati', 'cannondale', 'redline', 'specialized', 'suzuki']
可以看到’suzuki’被添加到了列表末尾。
另一种可以在列表的任意位置插入元素,使用insert()方法,接收一个索引值和待插入元素。
>>> bicycles.insert(0, 'honda')
>>> print(bicycles)
['honda', 'ducati', 'cannondale', 'redline', 'specialized', 'suzuki']
可以看到待插入元素添加到了索引值元素的前面。
从列表中删除元素: 删除列表中的元素的方法有多种:
1、使用del语句进行删除:
>>> del bicycles[1]
>>> print(bicycles)
['honda', 'cannondale', 'redline', 'specialized', 'suzuki']
对比上一段代码可以看到第二个元素被删除了。
2、使用pop()方法进行删除:
>>> bicycles.pop()
'suzuki'
>>> print(bicycles)
['honda', 'cannondale', 'redline', 'specialized']
如果你没有给pop方法一个元素索引值参数,该方法会删除列表的最后一个元素并返回这个元素。
同时pop()方法也可以指定要删除的元素,你需要给pop()方法传入要删除元素的索引值:
>>> bicycles.pop(2)
'redline'
>>> print(bicycles)
['honda', 'cannondale', 'specialized']
方法仍然会返回被删除元素。
3、根据值删除元素:
有事你并不会事先知道列表中要删除的值所在的位置,这时你可以使用remove()方法对列表元素进行删除:
>>> bicycles.remove('honda')
>>> print(bicycles)
['cannondale', 'specialized']
remove()方法并没有返回值,同时remove()方法只能删除在列表中靠前的所能找到的第一个具有该值的元素,如果要删除的值在列表中出现了多次,就不能一次性的删除完,你需要一个循环来判断该值是否全部被删除。
组织列表: 组织列表将会对列表进行排序,在python中简单的列表排序工作可以使用一个方法来快速完成:
1、使用sort()方法对列表进行永久性排序。
sort()方法将元素从小到大进行排序:
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort()
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']
先来说排序的规则:当列表元素都是字符串时,python将会先按第一个字符的ASCII值的大小来对它们排序,如果第一个字符的ASCII值相等,那就看第二个字符的ASCII以此类推。如果一个元素被包含于另一个元素,则这个元素小于包含元素,如’abc’ < ‘abcd’。
sort()方法没有返回值,排序过后会改变原列表元素的位置,不管你什么时候,在何位置访问这个列表它都将会是被排序过的。
2、使用sorted()对列表进行临时排序。
如果你只想将列表临时排一下顺序,并不想永久的改变原列表,你可以使用sorted()方法。该方法接收一个列表,返回一个被排序过的列表,你可以创建一个列表变量接收它,并且原列表的元素顺序是不被改变的。
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> gets = sorted(cars)
>>> print(cars)
['bmw', 'audi', 'toyota', 'subaru']
>>> print(gets)
['audi', 'bmw', 'subaru', 'toyota']
可以看到gets列表获得了cars排序过后的列表,而cars列表的元素位置没有被改变。
**倒着打印列表:**要反转列表的排列可以使用方法reverse(),该方法可以反转列表元素,并放回原列表,这种改变也是永久性的,但是想要变回原来的列表也很容易,你只需要再次将列表反转即可:
>>> gets.reverse()
>>> print(gets)
['toyota', 'subaru', 'bmw', 'audi']
>>> gets.reverse()
>>> print(gets)
['audi', 'bmw', 'subaru', 'toyota']
确定列表的长度: 使用函数len()可以快速获得列表的元素个数,即列表的长度:
>>> len(gets)
4
获取列表的长度让你可以知道列表中有几个元素,也可以以此来避免使用列表时造成索引值超过列表长度的问题。