ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • Python笔记

    • 基础知识

      • 常见规范与运行方式
      • 变量与垃圾回收机制
      • 输入与格式化输出
      • 运算符
      • 流程控制语句
      • 浅拷贝和深拷贝
      • 常用数据类型与分类
      • 数据类型方法
      • 字符编码
      • 文件操作
      • 函数与参数
      • 命名空间与作用域
      • 闭包函数与装饰器
      • 迭代器与生成器
      • 三元表达式与生成式
        • 三元表达式
        • 生成式
      • 函数递归
      • 面向过程式和函数式编程
      • 模块与包
      • 程序设计目录参考
      • 常用内置模块或函数
      • 序列化和猴子补丁
      • 日志模块-logging
    • 类与面向对象

    • 并发编程

    • Web编程

    • 模块笔记

    • 其他

  • C笔记

  • C++笔记

  • Arduino笔记

  • Dev
  • Python笔记
  • 基础知识
Hoshinozora
2023-02-15
目录

三元表达式与生成式

# 三元表达式

三元表达式是if-else语法的简化版,用于表达一些简单的逻辑。

[条件成立的返回] if [条件] else [条件不成立的返回]

条件成立插入if前面的值,否则插入else后面的值。

返回结果也可以是函数,会调用函数然后将函数的返回值作为结果。

ret = "Yes" if 1 + 1 == 2 else "No"
# 同等于
if 1 + 1 == 2:
    ret = "Yes"
else:
    ret = "No"
1
2
3
4
5
6

# 生成式

生成式也用于简化代码,用于根据简单条件对迭代元素进行判断,以生成想要的对象。

# 列表生成式

list = [返回结果 for item in 可迭代对象 if 条件]

每for循环一次,条件判断一次,如果条件成立,则插入for前面的值到列表中。如果不使用if则表示任何值都成立,都插入到列表中。

返回结果可以是函数,会调用函数然后将函数的返回值作为元素插入到列表。

虽然可以嵌套,但不建议,因为可读性差。

list = [1,2,3]
test = [ i for i in list if i == 1 ]
print(test)
> 输出 [1]
1
2
3
4

使用方括号,表示生成的是列表。

# 字典生成式

keys = [('t',123),('a',321)]
dict = {k:v for k,v in keys if k != 'a'}
print(dict)
> 输出 {'t': 123}
1
2
3
4

使用花括号,生成的元素是键值对,表示生成的是字典。

# 集合生成式

keys = [123,321]
set  = {k for k in keys}
print(set)
1
2
3

使用花括号,但是生成的元素不是键值对,表示生成的是集合。

# 生成器表达式

g = (i for i in range(1,10) if i > 3)

使用圆括号,表示生成的是迭代对象,而非值。

#三元表达式#生成式
迭代器与生成器
函数递归

← 迭代器与生成器 函数递归→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式