当前位置:首页>python>Python基础笔记7——列表,像前端数组

Python基础笔记7——列表,像前端数组

  • 2026-10-11 07:47:00
Python基础笔记7——列表,像前端数组

📦 一、什么是数据容器?

数据容器是一种能存放多个数据的数据类型。

数据容器可以更高效地管理成批的数据,且便于存储、访问。

  1. 列表(List):像购物车,东西可以随便换

  2. 元组(Tuple):像密封袋,东西不能改

  3. 集合(Set):像抽奖箱,东西不重复且无序

  4. 字典(Dict):像通讯录,有名字有电话

5. 字符串(Str)

今天重点讲列表——最常用、最好用的容器!


🛒 二、列表的定义

# 空列表empty_list = []empty_list = list()# 有数据的列表numbers = [1, 2, 3, 4, 5]fruits = ["苹果", "香蕉", "橙子"]mixed = [1, "hello", 3.14, True]  # 列表可以混装不同类型!

列表的特点:

✅ 可以存多个数据✅ 数据可以是不同类型✅ 可以修改(增删改查都支持)✅ 有顺序(每个元素都有编号)

就像一个可扩容的购物车,想装什么装什么!


🔢 三、下标(索引值)

fruits = ["苹果", "香蕉", "橙子", "葡萄"]# 正向下标(从0开始!)print(fruits[0])  # 苹果print(fruits[1])  # 香蕉# 反向下标(从-1开始!)print(fruits[-1])  # 葡萄print(fruits[-2])  # 橙子

✏️ 四、列表的增删改查(重头戏!)

1. 增加元素

fruits = ["苹果", "香蕉"]# 1. append():在末尾添加一个fruits.append("橙子")print(fruits)  # ['苹果', '香蕉', '橙子']# 2. insert():在指定位置插入fruits.insert(1, "葡萄")print(fruits)  # ['苹果', '葡萄', '香蕉', '橙子']# 3. extend():把另一个列表的元素加进来more_fruits = ["西瓜", "芒果"]fruits.extend(more_fruits)print(fruits)  # ['苹果', '葡萄', '香蕉', '橙子', '西瓜', '芒果']

2. 删除元素

fruits = ["苹果", "香蕉", "橙子", "葡萄"]# del:按下标删除del fruits[1]print(fruits)  # ['苹果', '橙子', '葡萄']# pop():按下标删除并返回被删元素deleted = fruits.pop(0)print(deleted)  # 苹果print(fruits)    # ['橙子', '葡萄']# remove():按值删除(只删第一个匹配的)fruits = ["苹果", "香蕉", "苹果"]fruits.remove("苹果")print(fruits)  # ['香蕉', '苹果']# clear():清空列表fruits.clear()print(fruits)  # []

3. 修改元素

fruits = ["苹果", "香蕉", "橙子"]# 直接通过下标修改fruits[1] = "葡萄"print(fruits)  # ['苹果', '葡萄', '橙子']

4. 查询元素

fruits = ["苹果", "香蕉", "橙子", "香蕉"]# index():查找元素的下标(只找第一个)print(fruits.index("香蕉"))  # 1,只查找第一层元素,如果没有找到元素直接报错# count():统计元素出现的次数print(fruits.count("香蕉"))  # 2,只查找第一层元素# in:判断元素是否在列表中print("苹果" in fruits)   # Trueprint("西瓜" in fruits)   # False

🛠️ 五、列表的常用方法

1. 排序

numbers = [3, 1, 4, 1, 5, 9, 2, 6]# sort():原地排序(从小到大)numbers.sort()print(numbers)  # [1, 1, 2, 3, 4, 5, 6, 9]# 从大到小排序numbers.sort(reverse=True)print(numbers)  # [9, 6, 5, 4, 3, 2, 1, 1]# reverse():反转列表numbers = [1, 2, 3, 4, 5]numbers.reverse() # 只反转第一层元素print(numbers)  # [5, 4, 3, 2, 1]

2. 复制

# copy():复制列表original = [1, 2, 3]copy_list = original.copy()copy_list[0] = 999print(original)   # [1, 2, 3](原列表没变)print(copy_list)  # [999, 2, 3]

📊 六、列表的常用内置函数

前边讲的方法都可以理解为列表的方法(属性),下边是python内置函数

numbers = [10, 30, 20, 40, 50]# len():获取长度print(len(numbers))  # 5# max():最大值print(max(numbers))  # 50# min():最小值print(min(numbers))  # 10# sum():求和, 只能是数值类型print(sum(numbers))  # 150# sorted(数据容器,reverse=布尔值)# 对容器排序(从小到大,不会改变原容器)reverse 用于控制排序方式result = sorted(numbers)print(numbers) # [10, 30, 20, 40, 50]# list():转换成列表s = "hello"print(list(s))  # ['h', 'e', 'l', 'l', 'o']

🔄 七、列表的循环遍历

1. for循环遍历

fruits = ["苹果", "香蕉", "橙子"]# 直接遍历元素for fruit in fruits:    print(fruit)# 输出:# 苹果# 香蕉# 橙子

2. while循环遍历

fruits = ["苹果", "香蕉", "橙子"]index = 0while index < len(fruits):    print(fruits[index])    index += 1

3. 带下标的遍历

fruits = ["苹果", "香蕉", "橙子"]# start 可选参数,可以让计数从指定值开始(改变的是循环时的“编号”,不是真正的索引值)for index, fruit in enumerate(fruits , start = 2):    print(f"第{index}个:{fruit}")print(fruits[0])# 输出:# 第2个:苹果# 第3个:香蕉# 第4个:橙子# 苹果

🎮 八、实战小练习

练习1:求平均分

scores = [85, 92, 78, 90, 88]# 计算平均分average = sum(scores) / len(scores)print(f"平均分:{average}")

练习2:找最大值和最小值

numbers = [3, 1, 4, 1, 5, 9, 2, 6]max_num = max(numbers)min_num = min(numbers)print(f"最大值:{max_num}")print(f"最小值:{min_num}")

练习3:去重

# 方法1:用集合(但会打乱顺序)nums = [1, 2, 3, 2, 1, 4, 5]unique_nums = list(set(nums))print(unique_nums)  # [1, 2, 3, 4, 5](顺序可能变)# 方法2:手动去重(保持顺序)result = []for num in nums:    if num not in result:        result.append(num)print(result)  # [1, 2, 3, 4, 5]

🎯 实战大练习:学生成绩管理系统

# 初始化成绩列表scores = [85, 92, 78, 90, 88]print("=== 学生成绩管理系统 ===")while True:    print("\n1. 添加成绩")    print("2. 删除成绩")    print("3. 修改成绩")    print("4. 查看所有成绩")    print("5. 统计成绩")    print("6. 退出")    choice = input("请选择操作(1-6):")    if choice == "1":        score = int(input("请输入成绩:"))        scores.append(score)        print("添加成功!")    elif choice == "2":        index = int(input("请输入要删除的下标:"))        if 0 <= index < len(scores):            deleted = scores.pop(index)            print(f"已删除成绩:{deleted}")        else:            print("下标无效!")    elif choice == "3":        index = int(input("请输入要修改的下标:"))        if 0 <= index < len(scores):            new_score = int(input("请输入新成绩:"))            scores[index] = new_score            print("修改成功!")        else:            print("下标无效!")    elif choice == "4":        print("所有成绩:")        for i, score in enumerate(scores):            print(f"第{i}个:{score}")    elif choice == "5":        print(f"最高分:{max(scores)}")        print(f"最低分:{min(scores)}")        print(f"平均分:{sum(scores)/len(scores) :.1f}")    elif choice == "6":        print("退出系统!")        break    else:        print("无效选择,请重新输入!")

最新文章

随机文章