乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

  • Golang

  • AIOps

  • Python

    • 基础知识

      • Python之链表
      • Python 之类的初识
      • Python之函数式编程
      • Python之匿名函数
      • Python之自定义函数
      • Python之异常处理
      • Python之条件与循环
      • Python之列表生成式
      • Python之生成器
      • Python之装饰器
      • Python之迭代器
      • Python之进程、线程、协程
      • Python之深浅拷贝
      • Python之反射
      • Python之并发编程
      • Python之垃圾回收机制
      • Python之断言assert
      • Python之上下文管理器和with语句
      • Python中JSON的对应关系
      • Python之单例模式
    • Django框架

    • 其他

  • DevOps

  • 专栏
  • Python
  • 基础知识
乔克
2025-07-19

Python之列表生成式

列表的生成方式有下面三种:

(1)、用[]定义,比如 a = [1,2,3,4];

(2)、用 list()方法生成,比如 a = list((1,2,3,4));

(3)、用列表生成式

我们来看看列表生成式的基本语法:

[exp for iter_var in iterable]
1

其工作过程如下:

(1)、迭代 iterable 中的每个元素;

(2)、每次迭代都先把结果赋值给 iter_var,然后通过 exp 得到一个新的计算值;

(3)、最后把所有通过 exp 得到的计算值以一个新列表的形式返回。

其过程相当于下面这种语法:

L = []
for iter_var in iterable:
    L.append(exp)
1
2
3

带过滤功能的列表生成式的基本语法:

[exp for iter_var in iterable if_exp]
1

其工作过程如下:

(1)、迭代 iterable 中的每个元素,每次迭代都先判断 if_exp 表达式结果为真,如果为真则进行下一步,如果为假则进行下一次迭代;

(2)、把迭代结果赋值给 iter_var,然后通过 exp 得到一个新的计算值;

(3)、最后把所有通过 exp 得到的计算值以一个新列表的形式返回;

其过程相当于下面这个例子:

L = []
for iter_var in iterable:
    if_exp:
        L.append(exp)
1
2
3
4

循环嵌套的列表生成式的格式:

[exp for iter_var_A in iterable_A for iter_var_B in iterable_B]
1

其工作过程是每迭代 iterable_A 中的一个元素,就把 ierable_B 中的所有元素都迭代一遍。

相当于下面这种写法:

L = []
for iter_var_A in iterable_A:
    for iter_var_B in iterable_B:
        L.append(exp)
1
2
3
4

作者:乔克

本文链接:https://jokerbai.com

版权声明:本博客所有文章除特别声明外,均采用 署名-非商业性-相同方式共享 4.0 国际 (CC-BY-NC-SA-4.0) 许可协议。转载请注明出处!

上次更新: 2025/07/19, 11:33:23
Python之条件与循环
Python之生成器

← Python之条件与循环 Python之生成器→

最近更新
01
使用 Generic Webhook Trigger 触发 Jenkins 多分支流水线自动化构建
07-19
02
使用Zadig从0到1实现持续交付平台
07-19
03
基于Jira的运维发布平台
07-19
更多文章>
Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式