当前位置: 首页 > article >正文

Python--数据类型(中)

1. 列表(list)

1.1 定义与特性

  • 定义:有序、可变的容器,支持多种数据类型混合存储。

    user_list = ["奥力给", 98, True]
    empty_list = []  # 空列表
    
  • 可变性:列表内部元素可修改,区别于字符串和元组。

    user_list[0] = "新元素"  # 直接修改
    

1.2 独有功能

方法描述示例
​append(x)​尾部追加元素​user_list.append("新元素")​
​extend(iter)​批量追加可迭代对象​tools.extend([11, 22])​ → 将列表元素逐一添加
​insert(i, x)​指定索引插入元素​user_list.insert(1, "插入元素")​
​remove(x)​删除第一个匹配的元素​user_list.remove("Alex")​(需先判断存在性,否则报错)
​pop(i)​删除并返回索引i的元素​popped = user_list.pop(2)​(默认删除最后一个元素)
​clear()​清空列表​user_list.clear()​ → []​
​index(x)​返回元素索引​idx = user_list.index("Alex")​(找不到会报错)
​sort()​排序(仅同类元素可用)​num_list.sort(reverse=True)​ → 降序
​reverse()​反转列表顺序​user_list.reverse()​

示例:动态抽奖程序

import random
prizes = ["iPhone", "耳机", "现金"]
while prizes:
    winner = random.choice(prizes)
    print(f"恭喜抽中:{winner}")
    prizes.remove(winner)

1.3 公共功能

基础操作
  1. 索引与切片

    my_list = ["a", "b", "c", "d"]
    print(my_list[0])      # 输出:"a"
    print(my_list[1:3])    # 输出:["b", "c"]
    print(my_list[::-1])   # 输出:["d", "c", "b", "a"]
    
  2. 遍历

    for item in my_list:
        print(item)
    
    # 带索引遍历
    for idx, item in enumerate(my_list):
        print(f"索引{idx} → 值{item}")
    
  3. 成员检查

    if "a" in my_list:
        print("存在")
    
进阶操作
  • 列表生成式:快速生成列表

    squares = [x**2 for x in range(10)]  # [0, 1, 4, ..., 81]
    
  • 过滤元素:结合条件语句

    even_numbers = [x for x in range(10) if x % 2 == 0]  # [0, 2, 4, 6, 8]
    

1.4 类型转换

  • 字符串/元组→列表:list()​ 转换

    s = "hello"
    list_s = list(s)  # ["h", "e", "l", "l", "o"]
    
  • 其他容器→列表:

    tuple_data = (1, 2, 3)
    list_from_tuple = list(tuple_data)  # [1, 2, 3]
    

1.5 嵌套与复杂操作

  • 嵌套列表:列表元素可以是任意类型,包括其他列表

    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    print(matrix[1][2])  # 输出:6
    
  • 多维操作:修改嵌套列表中的值

    matrix[0][1] = 99  # 修改第一行第二列
    

1.6 阶段作业

基础操作题
my_list = ["alex", "WuSir", "ritian", "barry", "武沛齐"]
# 1. 追加元素
my_list.append("seven")
# 2. 插入元素
my_list.insert(1, "Tony")
# 3. 切片操作
new_my_list = my_list[0:3]
进阶操作题
# 将多维列表中的字符串元素转为大写
data = ["a", ["b", "c"], ("d", "e")]
data[1][0] = data[1][0].upper()

2. 元组(tuple)

2.1 定义与特性

  • 定义:有序、不可变的容器,元素类型可混合。

    t1 = (1, "a", True)
    t2 = (1,)  # 单元素元组(必须加逗号)
    
  • 不可变性:元组本身不可修改,但若元素为可变类型(如列表),其内部可修改。

    t = (1, [2, 3])
    t[1].append(4)  # 合法 → t = (1, [2, 3, 4])
    

2.2 公共功能

  1. 索引与切片:类似列表

    t = ("a", "b", "c")
    print(t[1])     # "b"
    print(t[0:2])   # ("a", "b")
    
  2. 遍历:

    for item in t:
        print(item)
    
  3. 运算符操作:

    t1 = (1, 2) + (3, 4)  # (1, 2, 3, 4)
    t2 = ("a",) * 3        # ("a", "a", "a")
    

2.3 类型转换

  • 字符串/列表→元组:tuple()​ 转换

    s = "hello"
    tuple_s = tuple(s)  # ('h', 'e', 'l', 'l', 'o')
    

2.4 嵌套与特殊场景

  • 嵌套元组:元素可为其他容器

    nested = (1, [2, 3], ("a", "b"))
    nested[1][0] = 99  # 合法 → (1, [99, 3], ("a", "b"))
    

2.5 练习题与总结

核心区别
  • 列表 vs 元组:

    • 列表:可变,适用于需要动态增删的场景。
    • 元组:不可变,适用于数据保护或作为字典键。
练习题
# 将字符串分割为元组
text = "qyiao|alex|eric"
parts = tuple(text.split("|"))  # ('qyiao', 'alex', 'eric')

3. 总结与作业

总结

  • 可变类型:列表、字典、集合(内部可修改)。
  • 不可变类型:字符串、元组、数值类型(值不可修改)。

作业答案

  1. 布尔值为False的类型:

    ""      # 空字符串
    []      # 空列表
    ()      # 空元组
    
  2. 运算符操作结果:

    v1 = [] or "qyiao"    # "qyiao"(空列表为False)
    v2 = [11,22] and (1,2)  # (1,2)(非空列表为True,返回最后一个值)
    

http://www.kler.cn/a/553412.html

相关文章:

  • 【数据挖掘】数据仓库
  • 《深度学习》——自然语言处理(NLP)
  • DeepSeek-R1:使用KTransformers部署(保姆级教程)
  • 月之暗面-KIMI-发布最新架构MoBA
  • 实现历史数据的插入、更新和版本管理-拉链算法
  • 我的2025年计划
  • 红外图像与可见光图像在目标检测时的区别
  • 【数据分析】通过个体和遗址层面的遗传相关性网络分析
  • 浪潮信息元脑R1服务器重塑大模型推理新标准
  • 【核心算法篇十四】《深度解密DeepSeek量子机器学习:VQE算法加速的黑科技与工程实践》
  • MySQL 多表查询技巧和高阶操作实例1
  • Coze扣子怎么使用更强大doubao1.5模型
  • Brave132编译指南 MacOS篇 - 构筑开发环境(二)
  • 优雅地使用枚举参数,让项目Spring Boot项目更加优雅
  • 12.1 Android中协程的基本使用
  • java.2.19
  • Hadoop之HDFS的使用
  • PH热榜 | 2025-02-19
  • 元数据服务器的概述
  • JavaScript与AJAX:让网页动起来的魔法与秘密