列表定义
列表是由一系列案特定顺序排列的元素组成。在python中,用方括号([])来表示,并用逗号来分隔其中的元素。
names = ['Alex',"Tenglan",'Eric']
列表访问
列表元素的访问从索引0开始,而不是索引1开始。
列表的索引可以是从负数开始。这种语法经常在需要在不知道列表长度的情况下访问元素。
>>names[0]'Alex'
>>> names[2]'Eric'
>>> names[-1]'Eric'
>>> names[-2] #还可以倒着取
'Tenglan'
View Code
列表操作
修改列表元素
>>>names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']>>> names[2] = "该换人了"
>>>names
['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
View Code
添加列表元素
从列表末尾添加,利用append方法。
>>>names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy']>>> names.append("我是新来的")>>>names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
View Code
从列表任意位置添加,利用insert方法。
>>>names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']>>> names.insert(2,"强行从Eric前面插入")>>>names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']>>> names.insert(5,"从eric后面插入试试新姿势")>>>names
['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
View Code
删除列表元素
利用“del”删除,删除的列表元素不能再使用。
>>> del names[2]>>>names
['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']>>> del names[4]>>>names
['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']>>>
View Code
利用pop方法删除
在pop方法中,默认是从列表末尾删除,但也可以给pop方法传参,参数表示列表的索引;利用pop方法弹出的列表元素可以被再次使用。
1 >>>name = ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的']2 >>> names.pop() #删除列表最后一个值
3 '我是新来的'
4 >>>names5 ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']6
7 >>> names.pop(2) #删除列表任意一个值
8 '我是新来的'
9 >>>names10 ['Alex', 'Tenglan', 'Tom', 'Amy']
View Code
利用列表元素值删除
使用remove方法实现。
1 >>>name = ['Alex', 'Tenglan', 'Eric', 'Rain']2 >>>name.remove('Eric')3 ['Alex', 'Tenglan','Rain']
View Code
如果要从列表中删除一个元素,而这个元素不会再以任何方式使用,那么就用“del”删除,反之,用pop方法删除。
方法remove只能删除第一个指定的元素。如果要删除的值在列表中存在多个,那么就要用循环去删除。
列表排序
永久性改变列表顺序
利用sort方法实现。给sort方法的参数为“reverse=True”时,可以反向排序;排序的原则是按照字母顺序排序的。
1 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']2 >>>names.sort()3 >>>names4 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']5
6 >>> names.sorted(reverse=True) #反转
7 >>>names8 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
View Code
同样也可以利用reverse方法实现反转。
1 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']2 >>>names.sort()3 >>>names4 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']5
6 >>> names.reverse() #反转
7 >>>names8 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
View Code
还需要注意的是,在python3中,不同数据类型是无法排序的
1 >>>names2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]3 >>> names.sort() #排序
4 Traceback (most recent call last):5 File "", line 1, in
6 TypeError: unorderable types: int() < str()
View Code
保留原来列表的排列顺序
利用sorted方法实现。跟sort方法同理,给sorted方法的参数为“reverse=True”时,可以反向排序。
1 >>>names = ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']2 >>>print(sorted(names))3 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']4
5 >>>print(names)6 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
View Code
列表元素下表获取
利用index方法实现。
1 >>> print(names)2 ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']3 >>> names.index("Amy")4 2 #只返回找到的第一个下标
View Code
列表元素出现次数获取
利用count方法实现
1 >>> print(names)2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]3 >>> names.count("Amy")4 2
View Code
获取列表长度
利用len方法实现。需要注意的是,在计算列表长度时,是从1开始的。
1 >>> names = ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']2 >>>len(names)3 8
View Code
列表切片操作
需要注意的是,“:”前面的索引表示起始位置,“:”后面的索引表示终止位置。
1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"]2 >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4
3 ['Tenglan', 'Eric', 'Rain']4 >>> names[1:-1] #取下标1至-1的值,不包括-1
5 ['Tenglan', 'Eric', 'Rain', 'Tom']6 >>> names[0:3]7 ['Alex', 'Tenglan', 'Eric']8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样
9 ['Alex', 'Tenglan', 'Eric']10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写
11 ['Rain', 'Tom', 'Amy']12 >>> names[3:-1] #这样-1就不会被包含了
13 ['Rain', 'Tom']14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个
15 ['Alex', 'Eric', 'Tom']16 >>> names[::2] #和上句效果一样
17 ['Alex', 'Eric', 'Tom']
View Code
列表解析
列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。
1 >>>s = [value**2 for value in range(1,5)]2 >>>print(s)3 [1, 4, 9, 16]
View Code
数值列表
可以利用list方法和range方法,快速实现定义数值列表。
1 >>>numbers = list(range(1,30,3))2 >>>print(numbers)3 [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
View Code
可以利用max方法,min方法和sum方法,计算需要的值。
1 >>>numbers = list(range(1,30,3))2 >>>print(numbers)3 >>>print(min(numbers))4 >>>print(max(numbers))5 >>>print(sum(numbers))6 [1, 4, 7, 10, 13, 16, 19, 22, 25, 28]7 1
8 28
9 145
View Code