列表创立
列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9;也可以将其他元素加入列表中,其中的元素之间可以没有任何关系。在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。具体的例子如下:
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
元素访问
可以从上面直观的例子看到,输出的是整个列表,而不是列表里面的元素。列表是有序集合,因此要访问列表的任何元素,需将该元素的位置或索引的信息传输给程序。要访问列表元素,先确定指出列表的名称,再确定元素的索引,并将其放在方括号内。这里还需要注意另外一个事项就是:程序的索引一般是从0开始,而不是从1开始。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
# 输出
trek
对于特殊位置的索引(最后一个),我们可以通过将索引信息置为 -1,从而实现输出最后一个元素。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
# 输出
specialized
之前提到的对于字符串的处理方法这里也同样适用。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1].title())
# 输出
Specialized
元素操作
上面提到的列表,是一个动态的列表。也就意味着,我们可以对列表的元素进行增加、删除、修改等操作。
元素修改
元素的修改,跟元素访问一样,需要先明确修改元素的位置,即先确定列表和在列表中的位置。这里可以通过直接赋值的方式将新元素修改到原来准备修改元素的位置。而其他的元素是不会受到影响的。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles[0] = 'Gaint'
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['Gaint', 'cannondale', 'redline', 'specialized']
元素增加
元素的增加,整体来说分为两类情况,一类是将元素增加到列表的末尾;另一类是将元素增加到列表中指定的位置。这里可以分别介绍两种类型的实现方法。
1. 增加元素至末尾可以使用方法append()。该方式其实还有另外一种较长使用场景,新建一个空列表,在需要使用的时候将元素添加至列表中。这种适用于在初期并不知道自己需要什么元素,等需要使用的过程中再添加至列表中。可以方便剔除掉我们可能不需要使用的元素,减少内存。增加元素的具体例子如下:
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles.append('honda')
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'cannondale', 'redline', 'specialized', 'honda']
2.将元素插入到列表中指定的位置,可以通过方法insert()实现。该使用场景需要明确添加位置的索引和值。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles.insert(1,'honda')
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'honda', 'cannondale', 'redline', 'specialized']
元素删除
元素的删除,整体来说分为三类情况:第一类是知道删除元素的位置且不在使用,第二类是知道删除的元素的位置但会使用到该元素;第三类是只知道删除元素的值。
1. 知道删除元素的位置且不在使用,可以使用del语句。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
del bicycles[2]
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'cannondale', 'specialized']
2. 知道删除元素的位置但会使用到该元素,可以使用pop()方法。如果没有明确定义元素的位置,这边默认删除列表中的末尾元素。
# 示例一
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
del_bicycles = bicycles.pop()
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'cannondale', 'redline']
# 示例二
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
del_bicycles = bicycles.pop(2)
print(bicycles)
print(del_bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'cannondale', 'specialized']
redline
3.只知道删除元素的值,不清楚元素在列表中的位置,可以通过方法remove()实现。方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。具体的实现方式后续再介绍。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles.remove('cannondale')
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'redline', 'specialized']
元素排序
创建的列表中,元素的排列顺序常常是无法预测的,因为不能控制用户提供数据的顺序。这种情况在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可依据实际需求来完成使用。
1. 使用方法sort()对列表进行永久性排序。这里是无法再次回复到初始的顺序,也就是使用了该方法之后,你将丢失原来列表里面的数据顺序。除了默认的字母排序之外,还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数
reverse=True。
# 示例一
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles.sort()
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['cannondale', 'redline', 'specialized', 'trek']
# 示例二
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles.sort(reverse=True)
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['trek', 'specialized', 'redline', 'cannondale']
2.使用函数sorted()对列表进行临时排序。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的要复杂。后续的文章会做进一步的介绍。这里也想强调一点:当你使用了函数sorted()之后,它的临时排序仅存在于它所在的语句中。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
print(sorted(bicycles))
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['cannondale', 'redline', 'specialized', 'trek']
['trek', 'cannondale', 'redline', 'specialized']
3. 使用方法reverse()实现列表的逆转,也就是原先的第一个元素是列表中的最后一个,第二个元素是列表中的倒数第二个。这种方法是会永久性更改列表的排序;但是也可以恢复到初始排序,只需要再一次使用方法reverse()。
# 输入
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
bicycles.reverse()
print(bicycles)
bicycles.reverse()
print(bicycles)
# 输出
['trek', 'cannondale', 'redline', 'specialized']
['specialized', 'redline', 'cannondale', 'trek']
['trek', 'cannondale', 'redline', 'specialized']
列表长度
列表的长度我们可以通过函数len来获取。这里需要说明的是,列表的计算长度是从1开始的。所以基本上不会存在差1的情况。还想在说明另外一点是,列表的元素索引是从0开始的,这也是需要牢记的一个点。