2.9 Python3 列表

列表(List)是 Python 中最常用的数据类型之一,它是一个有序、可变的集合,可以包含不同类型的元素。列表用方括号 [] 表示,元素之间用逗号分隔。


目录

1. 访问列表中的值

2. 更新列表

3. 删除列表元素

4. Python列表脚本操作符

5. Python 列表截取与拼接

6. 嵌套列表

7. 列表比较

8. Python列表函数

9. Python列表方法

9.1 添加元素

9.2 删除元素

9.3 查找和统计

9.4 排序和反转

9.5 复制列表

10.Python 列表的作用与应用场景

10.1 数据存储与组织

10.2 数据操作与处理

10.3 迭代与遍历

10.4 算法实现

10.5 多维数据表示

10.6 函数参数传递

10.7 与其他数据结构转换

10.8 实际应用案例


1. 访问列表中的值

与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。

通过索引列表可以进行截取、组合等操作。

可以通过索引和切片来访问列表中的元素:

my_list = ['apple', 'banana', 'cherry', 'orange']

# 通过索引访问
print(my_list[0])   # 输出: 'apple' (正向索引从0开始)
print(my_list[-1])  # 输出: 'orange' (负索引表示从末尾开始)

# 通过切片访问
print(my_list[1:3])  # 输出: ['banana', 'cherry'] (从索引1到2)
print(my_list[:2])   # 输出: ['apple', 'banana'] (从开始到索引1)
print(my_list[2:])   # 输出: ['cherry', 'orange'] (从索引2到末尾)
print(my_list[::2])  # 输出: ['apple', 'cherry'] (步长为2)

2. 更新列表

可以对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项

列表是可变的,可以直接修改列表中的元素:

my_list = ['apple', 'banana', 'cherry']

# 修改单个元素
my_list[1] = 'blueberry'
print(my_list)  # 输出: ['apple', 'blueberry', 'cherry']

# 修改切片
my_list[1:3] = ['banana', 'orange']
print(my_list)  # 输出: ['apple', 'banana', 'orange']

# 添加元素
my_list.append('grape')  # 在末尾添加
print(my_list)  # 输出: ['apple', 'banana', 'orange', 'grape']

my_list.insert(1, 'pear')  # 在索引1处插入
print(my_list)  # 输出: ['apple', 'pear', 'banana', 'orange', 'grape']

3. 删除列表元素

有多种方法可以删除列表中的元素:

可以使用 del 、.pop、.remove、.clear语句来删除列表中的元素

my_list = ['apple', 'banana', 'cherry', 'orange', 'grape']

# 根据索引删除
del my_list[0]
print(my_list)  # 输出: ['banana', 'cherry', 'orange', 'grape']

# 删除并返回被删除的元素
popped = my_list.pop(1)  # 删除索引1的元素
print(popped)  # 输出: 'cherry'
print(my_list)  # 输出: ['banana', 'orange', 'grape']

# 根据值删除
my_list.remove('orange')
print(my_list)  # 输出: ['banana', 'grape']

# 清空列表
my_list.clear()
print(my_list)  # 输出: []


4. Python列表脚本操作符

列表支持多种操作符:

Python 表达式结果描述
len([1, 2, 3])3长度
[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合
['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复
3 in [1, 2, 3]True元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ")1 2 3迭代

list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 拼接
print(list1 + list2)  # 输出: [1, 2, 3, 4, 5, 6]

# 重复
print(list1 * 3)  # 输出: [1, 2, 3, 1, 2, 3, 1, 2, 3]

# 成员判断
print(3 in list1)  # 输出: True
print(7 not in list1)  # 输出: True

5. Python 列表截取与拼接

列表切片和拼接非常灵活:

# 切片
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[2:7])    # 输出: [2, 3, 4, 5, 6]
print(nums[::2])    # 输出: [0, 2, 4, 6, 8] (步长为2)
print(nums[::-1])   # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (反转列表)

# 拼接
part1 = [1, 2, 3]
part2 = [4, 5, 6]
combined = part1 + part2
print(combined)  # 输出: [1, 2, 3, 4, 5, 6]

6. 嵌套列表

列表可以包含其他列表,形成多维结构:

# 二维列表
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 访问嵌套列表元素
print(matrix[0][1])  # 输出: 2 (第一行第二列)

# 遍历嵌套列表
for row in matrix:
    for num in row:
        print(num, end=' ')
    print()
# 输出:
# 1 2 3 
# 4 5 6 
# 7 8 9

7. 列表比较

列表可以使用比较运算符进行比较:

list1 = [1, 2, 3]
list2 = [1, 2, 4]
list3 = [1, 2, 3]

print(list1 == list3)  # True (元素相同)
print(list1 == list2)  # False
print(list1 < list2)   # True (逐个元素比较)
print([1, 2] < [1, 2, 3])  # True (短列表小于长列表)

列表比较需要引入 operator 模块的 eq 方法

# 导入 operator 模块
import operator

a = [1, 2]
b = [2, 3]
c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))  #False
print("operator.eq(c,b): ", operator.eq(c,b))  #True

8. Python列表函数

Python 提供了一些内置函数用于操作列表:

序号函数
1len(list)
列表元素个数
2max(list)
返回列表元素最大值
3min(list)
返回列表元素最小值
4list(seq)
将元组转换为列表

nums = [3, 1, 4, 1, 5, 9, 2]

# 长度
print(len(nums))  # 7

# 最大值和最小值
print(max(nums))  # 9
print(min(nums))  # 1

# 求和
print(sum(nums))  # 25

# 排序(返回新列表)
print(sorted(nums))  # [1, 1, 2, 3, 4, 5, 9]

# 枚举
for index, value in enumerate(nums):
    print(f"Index {index}: {value}")
# 输出:
# Index 0: 3
# Index 1: 1
# Index 2: 4
# ...


9. Python列表方法

列表对象提供了许多有用的方法:

序号方法
1list.append(obj)
在列表末尾添加新的对象
2list.count(obj)
统计某个元素在列表中出现的次数
3list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)
将对象插入列表
6list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)
移除列表中某个值的第一个匹配项
8list.reverse()
反向列表中元素
9list.sort( key=None, reverse=False)
对原列表进行排序
10list.clear()
清空列表
11list.copy()
复制列表

9.1 添加元素

fruits = ['apple', 'banana']

# 追加元素
fruits.append('orange')
print(fruits)  # ['apple', 'banana', 'orange']

# 插入元素
fruits.insert(1, 'pear')
print(fruits)  # ['apple', 'pear', 'banana', 'orange']

# 扩展列表
fruits.extend(['grape', 'melon'])
print(fruits)  # ['apple', 'pear', 'banana', 'orange', 'grape', 'melon']

9.2 删除元素

numbers = [1, 2, 3, 2, 4, 2, 5]

# 移除第一个匹配项
numbers.remove(2)
print(numbers)  # [1, 3, 2, 4, 2, 5]

# 弹出指定位置元素
popped = numbers.pop(2)
print(popped)   # 2
print(numbers)  # [1, 3, 4, 2, 5]

# 清空列表
numbers.clear()
print(numbers)  # []

9.3 查找和统计

letters = ['a', 'b', 'c', 'a', 'b', 'a']

# 计数
print(letters.count('a'))  # 3

# 查找索引
print(letters.index('b'))     # 1 (第一个'b'的位置)
print(letters.index('b', 2))  # 4 (从索引2开始查找)

9.4 排序和反转

nums = [3, 1, 4, 1, 5, 9, 2]

# 排序(原地修改)
nums.sort()
print(nums)  # [1, 1, 2, 3, 4, 5, 9]

nums.sort(reverse=True)
print(nums)  # [9, 5, 4, 3, 2, 1, 1]

# 反转(原地修改)
nums.reverse()
print(nums)  # [1, 1, 2, 3, 4, 5, 9]
 

9.5 复制列表

original = [1, 2, 3]

# 浅拷贝
copy1 = original.copy()
copy2 = list(original)
copy3 = original[:]

# 修改拷贝不会影响原列表
copy1[0] = 99
print(original)  # [1, 2, 3]
print(copy1)     # [99, 2, 3]

10.Python 列表的作用与应用场景

列表(List)是 Python 中最基础、最常用的数据结构之一,它在编程中有着广泛的应用。以下是列表的主要作用和应用场景:

10.1 数据存储与组织

作用:列表可以有序地存储多个数据项,这些数据项可以是不同类型。

应用场景

  • 存储一组相关数据(如学生名单、商品列表等)

  • 临时保存计算结果或中间数据

  • 组织复杂数据结构的基础

# 存储不同类型的数据
mixed_list = [1, "apple", 3.14, True]

# 存储学生成绩
scores = [85, 92, 78, 90, 88]

10.2 数据操作与处理

作用:列表提供了丰富的方法来操作和处理数据。

应用场景

  • 数据排序、筛选和转换

  • 批量处理数据元素

  • 实现队列、栈等数据结构

# 数据处理示例
numbers = [5, 2, 8, 1, 9]
numbers.sort()  # 排序
filtered = [x for x in numbers if x > 3]  # 筛选
doubled = [x*2 for x in numbers]  # 转换

10.3 迭代与遍历

作用:列表天然支持迭代,便于批量处理元素。

应用场景

  • 批量处理数据集

  • 实现循环操作

  • 数据分析和统计

# 计算总和
total = 0
for num in [1, 2, 3, 4, 5]:
    total += num

# 统计频率
words = ["apple", "banana", "apple", "orange"]
word_count = {}
for word in words:
    word_count[word] = word_count.get(word, 0) + 1

10.4 算法实现

作用:列表是许多算法的基础数据结构。

应用场景

  • 排序和搜索算法

  • 动态规划

  • 图算法中的邻接表表示

# 实现冒泡排序
def bubble_sort(lst):
    n = len(lst)
    for i in range(n):
        for j in range(0, n-i-1):
            if lst[j] > lst[j+1]:
                lst[j], lst[j+1] = lst[j+1], lst[j]
    return lst

10.5 多维数据表示

作用:嵌套列表可以表示多维数据结构。

应用场景

  • 矩阵运算

  • 表格数据表示

  • 游戏开发中的地图表示

# 表示3x3矩阵
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

# 访问矩阵元素
print(matrix[1][2])  # 输出6 (第二行第三列)

10.6 函数参数传递

作用:列表可以作为函数的参数和返回值。

应用场景

  • 传递和返回多个值

  • 实现可变参数函数

  • 函数式编程中的高阶函数应用

# 函数处理列表
def process_numbers(numbers):
    return [x**2 for x in numbers if x % 2 == 0]

result = process_numbers([1, 2, 3, 4, 5])  # 返回[4, 16]

10.7 与其他数据结构转换

作用:列表可以方便地与其他数据结构相互转换。

应用场景

  • 与字符串、元组、集合、字典等转换

  • 数据格式转换

  • 数据序列化

# 字符串与列表转换
s = "hello"
lst = list(s)  # ['h', 'e', 'l', 'l', 'o']
new_s = "".join(lst)  # "hello"

# 字典与列表转换
d = {"a": 1, "b": 2}
keys = list(d.keys())  # ['a', 'b']

10.8 实际应用案例

  1. 数据清洗

    # 去除空值
    data = ["apple", "", "banana", None, "cherry"]
    cleaned = [x for x in data if x]
  2. 任务管理

    # 简单的待办事项列表
    todo_list = ["写报告", "开会", "回复邮件"]
    todo_list.append("准备演示")
    todo_list.remove("开会")
  3. 数据分析

    # 计算平均值
    def average(lst):
        return sum(lst) / len(lst) if lst else 0
  4. 游戏开发

    # 游戏地图
    game_map = [
        [0, 1, 0, 0],
        [0, 0, 1, 0],
        [1, 0, 0, 1],
        [0, 1, 0, 0]
    ]
     

列表是 Python 中非常强大且灵活的数据结构,掌握这些基本操作对于 Python 编程至关重要。列表推导式、生成器表达式等高级特性可以进一步简化列表操作,提高代码效率。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值