引言
在前面的课程中,我们已经学习了 Python 的基本输入输出、数据类型及其转换、顺序结构、分支结构、循环结构、循环控制语句以及字符串类型。本课时将介绍 Python 中的列表类型,包括列表的创建与访问、列表的方法以及列表推导式。
列表类型简介
列表是一种有序的、可变的数据类型,可以存储不同类型的元素。列表中的元素可以通过索引来访问,并且列表支持多种操作,如添加、删除、修改等。
列表的创建与访问
创建列表:
- 可以使用方括号
[ ]
来创建列表,并在括号内放入元素。 - 元素之间使用逗号
,
分隔。
numbers = [1, 2, 3] names = ["Alice", "Bob", "Charlie"] mixed = [True, 3.14, "hello"]
- 可以使用方括号
访问列表中的元素:
- 列表支持索引访问,索引从 0 开始。
- 也可以使用负数索引来从末尾开始访问元素。
first_name = names[0] # "Alice" last_name = names[-1] # "Charlie"
访问子列表(切片):
- 使用切片来访问列表的一部分。
part_of_names = names[1:3] # ["Bob", "Charlie"] first_two_names = names[:2] # ["Alice", "Bob"] last_two_names = names[-2:] # ["Bob", "Charlie"]
列表方法
Python 提供了许多内置方法来处理列表。以下是一些常用的列表方法:
向列表中添加元素:
append()
方法:向列表末尾添加一个元素。extend()
方法:将另一个列表中的元素追加到当前列表。insert()
方法:在指定位置插入一个元素。
numbers.append(4) # [1, 2, 3, 4] numbers.extend([5, 6]) # [1, 2, 3, 4, 5, 6] numbers.insert(1, 1.5) # [1, 1.5, 2, 3, 4, 5, 6]
从列表中移除元素:
remove()
方法:移除列表中指定的元素。pop()
方法:移除并返回列表中的指定位置的元素,默认移除最后一个元素。
numbers.remove(2) # [1, 1.5, 3, 4, 5, 6] removed_element = numbers.pop(2) # 移除并返回 3,列表变为 [1, 1.5, 4, 5, 6]
其他列表方法:
len()
函数:返回列表的长度。index()
方法:返回列表中指定元素的第一个索引。count()
方法:返回列表中指定元素的出现次数。sort()
方法:对列表进行排序。reverse()
方法:反转列表中的元素。
length = len(numbers) # 5 index_of_1_5 = numbers.index(1.5) # 1 count_of_4 = numbers.count(4) # 1 numbers.sort() # [1, 1.5, 4, 5, 6] numbers.reverse() # [6, 5, 4, 1.5, 1]
列表推导式
列表推导式是一种简洁的方式来创建新的列表。它可以让你在一行代码中创建列表,并且通常比使用循环更加高效。
基本语法:
new_list = [expression for item in iterable if condition]
其中
expression
是基于item
的表达式,iterable
是一个可迭代的对象,condition
是一个可选的条件。示例:
- 创建一个新列表,包含原列表中所有偶数的平方。
squares = [x**2 for x in range(10) if x % 2 == 0] # [0, 4, 16, 36, 64]
列表处理综合应用
现在我们通过一个综合示例来展示如何在实际编程中应用列表处理技术。假设我们需要编写一个程序,该程序处理一个学生的成绩列表,计算平均分,并将成绩高于平均分的学生姓名存入一个新的列表。
示例代码:
def process_grades(names, grades):
# 计算平均分
average_grade = sum(grades) / len(grades)
# 使用列表推导式找到高于平均分的学生
high_scorers = [name for grade, name in zip(grades, names) if grade > average_grade]
# 输出结果
print(f"平均分为:{average_grade:.2f}")
print(f"高于平均分的学生有:{high_scorers}")
def main():
students = ["Alice", "Bob", "Charlie", "David"]
scores = [85, 92, 76, 90]
process_grades(students, scores)
# 运行主程序
if __name__ == "__main__":
main()
示例解析
计算平均分:
- 使用
sum()
函数计算总分,然后除以学生人数得到平均分。
- 使用
使用列表推导式找到高于平均分的学生:
- 使用
zip()
函数将学生姓名和成绩配对,然后使用列表推导式筛选出成绩高于平均分的学生姓名。
- 使用
输出结果:
- 输出平均分和高于平均分的学生名单。
小结
通过本课时的学习,你已经掌握了 Python 中的列表类型,并通过一个综合示例展示了如何在实际编程中应用列表处理技术。列表是编程中最常用的数据类型之一,了解如何有效地创建、访问、处理列表对于编写高质量的程序至关重要。