在Python编程中,列表是最常用的数据结构。列表就像是一个容器,可以存放多个数据项。这些数据项可以是数字、文字、甚至其他列表。
列表是Python中的一种序列类型,用方括号[]表示。列表中的每个元素都有对应的位置编号,称为索引。第一个元素的索引是0,第二个是1,依此类推。
创建列表很简单,把元素放在方括号里,用逗号隔开:
# 创建各种列表
fruits = ['苹果', '香蕉', '橙子'] # 字符串列表
scores = [85, 92, 78, 90] # 数字列表
mixed = ['张三', 25, '北京', 175.5] # 混合类型列表
empty_list = [] # 空列表通过索引可以访问列表中的元素:
colors = ['红色', '绿色', '蓝色', '黄色', '白色']
print(colors[0]) # 输出:红色
print(colors[1]) # 输出:绿色
print(colors[2]) # 输出:蓝色也可以使用负数索引,从列表末尾开始计数:
colors = ['红色', '绿色', '蓝色', '黄色', '白色']
print(colors[-1]) # 输出:白色(最后一个元素)
print(colors[-2]) # 输出:黄色(倒数第二个)
print(colors[-3]) # 输出:蓝色(倒数第三个)可以获取列表的一部分,这叫做切片:
numbers = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(numbers[0:4]) # 输出:[10, 20, 30, 40]
print(numbers[2:]) # 输出:[30, 40, 50, 60, 70, 80, 90]
print(numbers[:3]) # 输出:[10, 20, 30]
print(numbers[1:-2]) # 输出:[20, 30, 40, 50, 60, 70]列表中的元素可以修改:
students = ['张三', '李四', '王五']
# 修改元素
students[1] = '赵六'
print(students) # 输出:['张三', '赵六', '王五']
# 添加元素
students.append('钱七')
print(students) # 输出:['张三', '赵六', '王五', '钱七']删除列表元素有几种方法:
fruits = ['苹果', '香蕉', '橙子', '西瓜', '葡萄']
# 使用del语句
del fruits[1]
print(fruits) # 输出:['苹果', '橙子', '西瓜', '葡萄']
# 使用remove方法
fruits.remove('西瓜')
print(fruits) # 输出:['苹果', '橙子', '葡萄']
# 使用pop方法
last_fruit = fruits.pop()
print(last_fruit) # 输出:葡萄
print(fruits) # 输出:['苹果', '橙子']列表支持多种运算:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
# 列表连接
combined = list1 + list2
print(combined) # 输出:[1, 2, 3, 4, 5, 6]
# 列表重复
repeated = list1 * 3
print(repeated) # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]
# 检查元素是否存在
print(2 in list1) # 输出:True
print(7 in list1) # 输出:Falsenumbers = [45, 23, 78, 12, 89, 34]
print(len(numbers)) # 列表长度:6
print(max(numbers)) # 最大值:89
print(min(numbers)) # 最小值:12Python提供了很多处理列表的方法:
# 添加元素
fruits = ['苹果', '香蕉']
fruits.append('橙子') # 末尾添加
fruits.insert(1, '葡萄') # 指定位置插入
print(fruits) # 输出:['苹果', '葡萄', '香蕉', '橙子']
# 扩展列表
more_fruits = ['西瓜', '芒果']
fruits.extend(more_fruits)
print(fruits) # 输出:['苹果', '葡萄', '香蕉', '橙子', '西瓜', '芒果']
# 查找元素
print(fruits.index('香蕉')) # 输出:2
# 统计出现次数
numbers = [1, 2, 2, 3, 2, 4]
print(numbers.count(2)) # 输出:3# 数字排序
scores = [85, 92, 78, 90, 88]
scores.sort()
print(scores) # 输出:[78, 85, 88, 90, 92]
# 字符串排序
names = ['王五', '张三', '李四']
names.sort()
print(names) # 输出:['张三', '李四', '王五']
# 反转列表
numbers = [1, 2, 3, 4, 5]
numbers.reverse()
print(numbers) # 输出:[5, 4, 3, 2, 1]列表中可以包含其他列表:
# 创建嵌套列表(二维列表)
class_scores = [
['张三', 85, 92, 78],
['李四', 90, 88, 95],
['王五', 76, 85, 80]
]
# 访问嵌套列表元素
print(class_scores[0]) # 输出:['张三', 85, 92, 78]
print(class_scores[0][1]) # 输出:85
print(class_scores[1][0]) # 输出:李四使用循环处理列表中的每个元素:
fruits = ['苹果', '香蕉', '橙子', '葡萄']
# 遍历元素
for fruit in fruits:
print(fruit)
# 遍历索引和元素
for index, fruit in enumerate(fruits):
print(f"第{index}个水果是:{fruit}")复制列表时需要注意:
# 浅拷贝(不推荐)
original = [1, 2, 3]
copy_bad = original
copy_bad[0] = 99
print(original) # 输出:[99, 2, 3](原列表也被修改)
# 正确复制
original = [1, 2, 3]
copy_good = original.copy()
copy_good[0] = 99
print(original) # 输出:[1, 2, 3](原列表不变)# 学生成绩管理
students = []
# 添加学生信息
students.append(['张三', 85, 92, 78])
students.append(['李四', 90, 88, 95])
students.append(['王五', 76, 85, 80])
# 计算每个学生的平均分
for student in students:
name = student[0]
scores = student[1:]
average = sum(scores) / len(scores)
print(f"{name}的平均分是:{average:.1f}")
# 筛选优秀学生(平均分85以上)
excellent_students = []
for student in students:
scores = student[1:]
average = sum(scores) / len(scores)
if average >= 85:
excellent_students.append(student[0])
print(f"优秀学生:{excellent_students}")创建列表的简洁方法:
# 创建1到10的平方列表
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 筛选偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
evens = [x for x in numbers if x % 2 == 0]
print(evens) # 输出:[2, 4, 6, 8, 10]要熟练掌握列表操作,建议:
多练习列表的创建和基本操作
熟悉常用的列表方法
学会使用列表推导式
在实际项目中应用列表
记住,列表是Python编程中最常用的数据结构。开始可能觉得方法很多,但随着实践的增加,你会自然掌握这些技能。编程重在实践,多写代码就能进步。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!