240
我爱毛绒绒~~~~~~~

详解推导式,表达式

定义

哈希

哈希是一种将任意大小的数据映射到固定大小值的过程
在Python中,可哈希(hashable)指的是一个对象能够被哈希函数处理,即该对象有哈希值(通过__hash__方法),并且可以与其它对象比较(通过__eq__方法)。

  • 可哈希满足条件

    • 在其生命周期内,哈希值从不改变(即它是不可变的)。
    • 可以与其他对象比较(实现了__eq__方法)
  • 其他
    不可变类型(如整数、浮点数、字符串、元组)通常是可哈希的。可变类型(如列表、字典、集合)是不可哈希的,因为它们的内容可以改变,而哈希值应该基于内容,所以内容改变会导致哈希值改变,这不符合哈希值的定义。

元组

元组是一个有序的,不可变的元素序列
元组的可哈希性使其可以作为字典键和集合元素

特性
  • 有序性:元素顺序很重要
  • 可重复性:元素可以重复出现
  • 一旦创建,长度不可改变
创建
  • 使用()创建
    image

  • 使用创建
    image

  • 单个元素的元组(必须加逗号)
    image

  • 使用tuple()函数
    image

集合

用于存储无序,不重复的元素;可以进行交际,并集,差集等操作

定义
  • 集合(set)是一个无序的不重复的元素序列
  • 集合中的元素必须是哈希的(不可变类型)
  • 集合本身是不可哈希,所以集合不能作为集合的元素,但frozenset(不可变集合)可以
创建
  • 使用大括号创建
    image

  • 使用set()函数创建
    image

常用操作
  • 添加元素

    • add():向集合中添加一个单个元素,要求这个元素必须可哈希
      image

    • update():用于将一个可迭代对象中的元素(必须可哈希)添加到集合中
      image

  • 删除元素

    • remove():不存在会报错
      image

    • discard():不存在不报错
      image

    • pop():随机删除
      image

  • 集合运算

  • | :并集
    image

  • &:交集
    image

  • -:差集
    image

  • ^:对称差集(只在某一方中)
    image

总结

元组的核心特点:

  • 有序性:元素保持插入顺序
  • 不可变性:创建后不能修改
  • 可重复性:元素可以重复
  • 可哈希性:如果所有元素可哈希,则元组可哈希
    image

集合的核心特点

  • 无序性:元素没有固定顺序
  • 互异性:元素不重复
  • 可变性:可以添加/删除元素(除frozenset)
  • 可哈希要求:元素必须可哈希

归纳

  • 如果数据是记录(有固定字段),使用元组
  • 如果数据是集合(需要去重或者快速查找),使用集合
  • 如果需要频繁修改,使用列表
  • 如果需要键值对,使用字典

推导式

简洁创建数据结构的语法

[expression for item in iterable if condition]:列表推导式,用于创建一个列表,返回一个列表

  • 基本推导式
    image

  • 带条件判断的列表推导式
    image

  • 多个循环的列表推导式
    image

  • 嵌套列表推导式(矩阵转置)
    image

{key_expression: value_expression for item in iterable if condition}:字典推导式,用于创建字典,返回一个字典

  • 简单列表推导式
    image

  • 键值转换
    image

  • 带条件判断的字典推导式
    image

    • 根据dict.items()特性,也可以写成列表推导式
      image
  • 合并两个列表为一个字典
    image

{expression for item in iterable if condition}:集合推导式,用于创建集合,返回一个集合

  • 创建唯一元素的集合
    image

  • 从列表中提取唯一的元素
    image

  • 带条件的集合推导式
    image

表达式

能计算出一个值的代码片段

(expression for item in iterable if condition):生成器表达式,用于创建生成器,返回一个生成器对象

  • 创建生成器
    image

使用yield表达式(生成器函数)

image

value_if_true if condition else value_if_false:s三元表达式,条件表达式

  • 基本用法
    image

lambda表达式(匿名函数)

  • 基本用法
    image

  • 与三元表达式联用
    image

posted @ 2025-12-12 10:10  水开白  阅读(7)  评论(0)    收藏  举报