本章内容来自书籍,记录下来仅方便复习,如有侵权,请联系作者删除。
一、列表的含义
列表由一系列按照特定顺序排列的元素组成,可以由字母,数字或列表
组成。
在Python语言中,用方括号([]
)来表示列表,并用逗号来分隔其中的元素
1. 访问列表元素
(1)列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。
访问方式:列表名称[元素的索引]
names = ['tom','john','mary','jenny']
print(names [2].title()) #Mary
print(names [2]) #mary
2. 列表的访问规则
索引为自然数,表示从列表从0开始,正向取值
索引为负整数,表示从-1开始,逆向取值
names = ['tom','john','mary','jenny']
print(names [0]) #tom
print(names [-1]) #jenny
3. 使用列表中的各个值
可以像其他变量一样使用列表中的各个值
names = ['tom','john','mary','jenny']
message = "My name is "+names[2].title()+"."
print(message)
运行结果:
My name is Mary.
二、修改、添加和删除元素
列表是动态的,是可变对象。
1. 修改列表元素
可指定列表名和元素索引,再指定该元素的新值
names = ['tom','john','mary','jenny']
print(names)
names[2] = 'airis'
print(names)
运行结果:
['tom', 'john', 'mary', 'jenny']
['tom', 'john', 'airis', 'jenny']
2. 在列表中添加元素
(1)在末尾中添加元素
使用方法append()
,在列表末尾添加元素,不影响列表中的其他所有元素。
names = ['tom','john','mary','jenny']
names.append('adword')
print(names)
运行结果:
['tom', 'john', 'mary', 'jenny', 'adword']
(2)在列表中插入元素
使用方法insert()
,可在列表中任何位置添加新元素,需要指定新元素的索引和值
names= ['tom','john','mary','jenny']
names.insert(1,'adword')
print(names)
运行结果:
['tom', 'adword', 'john', 'mary', 'jenny']
3. 从列表中删除元素
(1)使用del语句删除元素
del语句,根据元素的位置来删除列表中的元素,需要传递元素的索引
names = ['tom','john','mary','jenny']
del names[1]
print(names)
运行结果:
['tom', 'mary', 'jenny']
(2)使用方法pop()来弹出元素
- 方法pop(),不传入参数,可以删除列表末尾的元素,并返回该元素的值。
names = ['tom','john','mary','jenny']
last_value = names.pop()
print(names)
print(last_value)
运行结果:
['tom', 'john', 'mary']
jenny
- 方法pop(),在括号中指定元素的索引,即可弹出该元素。
names = ['tom','john','mary','jenny']
value_3rd = names.pop(2)
print(names)
print(value_3rd)
运行结果:
['tom', 'john', 'jenny']
mary
(3)使用方法remove()删除元素
方法remove(),根据元素的值来删除列表中的元素,需要传入元素的值
names = ['tom','john','mary','jenny']
name_delete = 'tom'
data = names.remove(name_delete)
print(names)
# 没有返回值
print(data)
运行结果:
['john', 'mary', 'jenny']
None
方法remove()只能删除列表中的第一个指定值。如果该值不存在,则报错
names = ['tom','john','mary','jenny']
name_delete = 'tom'
names.remove(name_delete)
names.remove(name_delete)
print(names)
运行结果:
ValueError: list.remove(x): x not in list
三、组织列表
列表中元素的排序
1. 使用列表的sort()方法对列表进行永久性排序
方法sort()默认按照列表中字母的顺序,正序排序,可传入参数reverse=True/False改变排序顺序。会改变列表中的顺序。
- 正序排序:不传入参数,或者传入参数reverse=False
names = ['tom','john','mary','jenny']
names.sort()
print(names)
运行结果:
['jenny', 'john', 'mary', 'tom']
- 逆序排序: sort()方法传入参数reverse=True
names = ['tom','john','mary','jenny']
names.sort(reverse=True)
print(names)
运行结果:
['tom', 'mary', 'john', 'jenny']
2. 使用函数sorted()对列表进行临时排序
函数sorted()默认按照列表中字母的顺序,正序排序,可传入参数reverse=True/False改变排序顺序。不改变列表中的顺序,有返回值。
- 正序排序:不传入参数,或者传入参数reverse=False
names = ['tom','john','mary','jenny']
names_sorted = sorted(names)
print(names_sorted)
print(names)
运行结果:
['jenny', 'john', 'mary', 'tom']
['tom', 'john', 'mary', 'jenny']
- 逆序排序: sort()方法传入参数reverse=True
names = ['tom','john','mary','jenny']
names_sorted = sorted(names,reverse=True)
print(names_sorted)
print(names)
运行结果:
['tom', 'mary', 'john', 'jenny']
['tom', 'john', 'mary', 'jenny']
3. 使用列表的reverse()方法永久性反转列表排序
方法reverse()不是按照字母逆序排序,而是反转原列表中,列表元素的排列顺序。如需恢复列表排序,可再次调用reverse()
names = ['tom','john','mary','jenny']
#第一次反转
names.reverse()
print(names)
#第二次反转,恢复原列表顺序
names.reverse()
print(names)
运行结果:
['jenny', 'mary', 'john', 'tom']
['tom', 'john', 'mary', 'jenny']
- 使用函数len()确定列表的长度
有返回值
names = ['tom','john','mary','jenny']
names_len = len(names)
print(names_len)
运行结果:
4
四、使用列表时避免索引错误
索引错误意味着Python无法理解你的索引
names = ['tom','john','mary','jenny']
print(names[4])
运行结果:
IndexError: list index out of range
五、小结
本章学习了列表的定义,如何使用列表中的元素,对列表元素进行增删操作,永久性排序,临时排序,反转,确定列表长度。
两个报错:
列表的值错误:列表中不存在该值
ValueError: list.remove(x): x not in list
列表的索引错误:
IndexError: list index out of range