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

详解推导式,表达式

定义

哈希

哈希是一种将任意大小的数据映射到固定大小值的过程
在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

http://www.jsqmd.com/news/76031/

相关文章:

  • 数智化时代:AI技巧重构企业财务管理系统的底层逻辑与实践
  • 2025北京高端留学中介前十名排名 - 留学品牌推荐官
  • 漏洞赏金思维:如何像黑客一样思考
  • YouCompleteMe完全指南:让Vim成为你的编程利器
  • 2025年比较好的超声波探伤检测设备最新TOP品牌厂家排行 - 品牌宣传支持者
  • 2025年不锈钢板采购必看:五大专业定制批发品牌推荐,不锈钢薄壁板/不锈钢厚壁板/不锈钢彩色板/不锈钢装饰板厂家选哪家 - 品牌推荐师
  • 5步掌握无名杀自定义武将开发:从入门到精通的完整教程
  • 孕期无聊不用愁!5款超有趣小游戏,轻松打发时光超惬意 - 速递信息
  • 3分钟快速选择:群晖引导工具终极对比指南
  • 2025年知名的散杂船物流行业服务满意度榜 - 行业平台推荐
  • NSTool终极指南:快速掌握Switch文件处理的10个技巧
  • 2025年12月角接触球轴承厂家权威推荐榜:精密/密封/超高速/低噪音/机床/减速机/机器人专用等全系列轴承深度解析与选购指南 - 小张666
  • 2025包装密封/CCIT/过滤器/医药包装完整性测试仪推荐厂家_质量好|性能好|性价比高|国内品牌排行榜 - 品牌推荐大师1
  • 2025年深圳子女抚养权律师权威推荐榜单:婚姻律师/继承律师/离婚房产专业律师与律所精选 - 品牌推荐官
  • 模型反向工程防御:Llama-Factory输出脱敏建议
  • 农业物联网中传感器Agent如何实现高效协作?90%的人都忽略了这3个关键点
  • 光纤这点事儿,老鸟一次给你讲透:种类、接口、芯数、场景全梳理(建议收藏)
  • Markdown标记语言
  • 【电力系统智能运维新突破】:基于多模态感知的诊断Agent设计全路径
  • y大小鼠穿梭箱 大鼠穿梭箱 大鼠穿梭实验箱
  • 鼓吹不婚不育的年轻人,看看这些无儿无女老人的晚年有多难?
  • 怎么用低成本打造一个高效精准的制造业客户获取系统呢?
  • ASME Y14.5-2018 几何公差标准:机械设计的精确之道
  • gSwitch终极指南:如何在双显卡MacBook上轻松切换GPU
  • modelsummary:R语言统计模型可视化与摘要的终极指南
  • 2025年知名的DCMM两化融合高口碑数字化服务商排行榜 - 行业平台推荐
  • 2025年TD5G低速离心机/TD5T自动脱帽离心机/TD5C台式低速离心机/TD5P美容专用离心机/TD5GL台式过滤离心机生产厂家推荐 - 品牌推荐大师1
  • PySwarms粒子群优化完全指南:从零基础到实战应用
  • NeurIPS‘25 | 端到端驾驶新基准!VR-Drive 新视图合成技术,路线完成率突破 92%,碾压 5 大 SOTA!
  • 为什么选择active-win作为您的窗口信息获取利器