Python(一) Python列表简介

#列表的定义
       列表 由一系列按特定顺序排列的元素组成。在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素。列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。
       在Python中,第一个列表元素的索引为0,而不是1。Python为访问最后一个列表元素提供了一种特殊语法:通过将索引指定为-1 ,可让Python返回最后一个列表元素。索引-2 返回倒数第二个列表元素,索引-3 返回倒数第三个列表元素,以此类推。

1
2
3
#返回bicycles列表中的最后一个元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])

#修改、添加和删除元素
##修改列表元素
       修改列表元素的语法与访问列表元素的语法类似。要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

1
2
3
4
5
6
#输出结果为['honda', 'yamaha', 'suzuki']
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
#输出结果为['ducati', 'yamaha', 'suzuki']
motorcycles[0] = 'ducati'
print(motorcycles)

##在列表中添加元素
1.在列表末尾添加元素

1
2
3
4
5
6
7
#使用append()函数在列表的结尾添加函数
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
#输出结果为:['honda', 'yamaha', 'suzuki']
# ['honda', 'yamaha', 'suzuki', 'ducati']

       方法append() 让动态地创建列表易如反掌,例如,你可以先创建一个空列表,再使用一系列的append() 语句添加元素。下面来创建一个空列表,再在其中添加元素’honda’ 、’yamaha’ 和’suzuki’ :

1
2
3
4
5
6
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
#输出结果:['honda', 'yamaha', 'suzuki']

2.在列表中插入元素
       使用方法insert() 可在列表的任何位置添加新元素。下列方法insert() 在索引0 处添加空间,并将值’ducati’ 存储到这个地方。这种操作将列表中既有的每个元素都右移一个位置。同理,若要在索引1处添加空间,将列表中原先索引为1及其索引在1之后的元素都向右移一个位置。

1
2
3
4
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
#输出结果:['ducati', 'honda', 'yamaha', 'suzuki']

##从列表中删除元素
1.使用del语句删除元素

1
2
3
4
5
6
7
#若知道要删除的元素在列表中的位置,可使用del语句
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
#输出:['honda', 'yamaha', 'suzuki']
del motorcycles[0]
print(motorcycles)
#输出:['yamaha', 'suzuki']

2.使用方法pop() 删除元素

1
2
3
4
5
6
7
8
9
#方法pop() 可删除列表末尾的元素,并让你能够接着使用它。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
#输出结果为:['honda', 'yamaha', 'suzuki']
popped_motorcycle = motorcycles.pop()
print(motorcycles)
#输出结果为:['honda', 'yamaha']
print(popped_motorcycle)
#输出结果为:suzuki
1
2
3
4
5
#弹出列表中任何位置处的元素
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print(first_owned)
#输出结果:honda

       如果你不确定该使用del 语句还是pop() 方法,可以根据这个判断标准:如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del 语句;如果你要在删除元素后还能继续使用它,就使用方法pop() 。

3.根据值删除元素
       有时候,你不知道要从列表中删除的值所处的位置。如果你只知道要删除的元素的值,可使用方法remove() 。

1
2
3
4
5
6
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
#输出:['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles.remove('ducati')
print(motorcycles)
#输出:['honda', 'yamaha', 'suzuki']

使用remove() 从列表中删除元素时,也可接着使用它的值:

1
2
3
4
5
6
7
8
9
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
#输出:['honda', 'yamaha', 'suzuki', 'ducati']
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
#输出:['honda', 'yamaha', 'suzuki']
print("\nA " + too_expensive.title() + " is too expensive for me.")
#输出:A Ducati is too expensive for me.

注意 方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

#组织列表

1.使用方法sort() 对列表进行永久性排序

1
2
3
4
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
#输出:['audi', 'bmw', 'subaru', 'toyota']

       方法sort() 永久性地修改了列表元素的排列顺序。以上代码让汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序。还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True 。下面的示例将汽车列表按与字母顺序相反的顺序排列:

1
2
3
4
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
#输出:['toyota', 'subaru', 'bmw', 'audi']

2.使用函数sorted() 对列表进行临时排序
       要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted() 。函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。

3.列表的其它操作
方法reverse()、函数len() 的使用:

1
2
3
4
5
6
7
#要反转列表元素的排列顺序,可使用方法reverse()
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
#输出:['bmw', 'audi', 'toyota', 'subaru']
cars.reverse()
print(cars)
#输出:['subaru', 'toyota', 'audi', 'bmw']
1
2
3
4
#使用函数len() 可快速获悉列表的长度。
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))
#输出:4

注意 笔者沉痛的教训,在编程学习的过程中,一定要严谨!!区分方法和函数的概念!!方法可供对象调用,而函数是需要引入参数才能使用的。例如以下代码报错,即将方法和函数之间错误使用了。
这里写图片描述