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

Python基础总结(九)之推导式

文章目录

    • 一、列表推导式
      • 1.1 列表推导式的格式
      • 1.2 列表推导式的注意事项
      • 1.3 列表推导式示例
    • 二、 字典推导式
      • 2.1 字典推导式格式
      • 2.2 字典推导式注意事项
      • 2.3 字典推导式示例
    • 三、 元组推导式
      • 3.1 元组推导式格式
      • 3.3 元组推导式示例

Python中的推导式有列表推导式,字典推导式和元组推导式,其中列表推导式使用的频率较高,其次为字典,元组推导式不经常用。

推导式是Python中用简明扼要的方式创建数据结构的方法,只需一行就可以完成多行的任务。

一、列表推导式

列表推导式就是输出的类型为列表形式的推导式。

1.1 列表推导式的格式

[变量 for 变量 in 可迭代对象]

示例:创建一个1-10的列表
原始的方法:

list_one = []
for i in range(1, 11):list_one.append(i)
print(list_one)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

上述的创建方法需要三行,才能完成创建。
使用列表推导式:

list_one = [i for i in range(1, 10)]
print(list_one)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

只需一行就可以完成列表的创建。

示例:求1-10的平方的列表

list_one = [i*i for i in range(1, 10)]
print(list_one)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]

1.2 列表推导式的注意事项

1、推导式中的in后面一定是可迭代的对象。
2、推导式的执行顺序是从左到右,语句之间为嵌套关系。

1.3 列表推导式示例

示例1:求1-10之间的奇数

list_one = [i for i in range(1, 10) if i % 2 != 0]
print(list_one)
# [1, 3, 5, 7, 9]

这篇文章中也用到了列表推导式,可以参考下:python爬虫之爬取网站小说

二、 字典推导式

字典推导式同列表推导式大致相同,不同的是字典推导式是以键值对形式出现

2.1 字典推导式格式

{:for 变量 in 可迭代对象}

2.2 字典推导式注意事项

1、字典中的键是唯一的,不可重复。
2、字典中的值不是唯一的,可以重复

2.3 字典推导式示例

lt = ["tom", "jerry", "john", "merry", "ali"]
dt = {"name"+str(lt.index(x)+1): x for x in lt}
print(dt)
lt = ["tom", "male", "170"]
data = ["name", "gender", "height"]
dt = {x: y for x, y in zip(data, lt)}
print(dt)
# {'name': 'tom', 'gender': 'male', 'height': '170'}

三、 元组推导式

元组推导式同列表推导式一样,只不过将方括号换成圆括号。

3.1 元组推导式格式

(变量 for 变量 in 可迭代对象)

3.3 元组推导式示例

tp = (i for i in range(1, 10))
print(tuple(tp))
# (1, 2, 3, 4, 5, 6, 7, 8, 9)
tp = (i for i in range(1, 10) if i % 2 == 0)
print(tuple(tp))
# (2, 4, 6, 8)
http://www.xdnf.cn/news/68311.html

相关文章:

  • AI 赋能企业架构之路:五大关键路标点深度剖析
  • C++ 封装成DLL,C#调用
  • 数字虹膜:无网时代的视觉密语 | 讨论
  • 第1 篇:你好,时间序列!—— 开启时间数据探索之旅
  • liunx中常用操作
  • 深入探索Qt异步编程--从信号槽到Future
  • 483. 找到字符串中所有的字母异位词
  • Linux 进程与线程间通信方式及应用分析
  • 分布式数据库TiDB:架构、核心特性与生产实践(分库分表)
  • 基于selenium框架的web应用自动化测试系统的设计与实现 毕业论文开题
  • Linux-网络基础
  • Spring_MVC 高级特性详解与实战应用
  • HTTP参数污染
  • Cribl 利用表向event 中插入相应的字段-example-01
  • 为零基础及不同背景学习者设计的 人工智能全栈学习路线图
  • git 版本提交规范
  • Linux 网络基础(三) TCP/IP协议
  • AI大模型 —— 国产大模型 —— 华为大模型
  • 卸载工具:IObit Uninstaller Pro v14.3.0 中文绿色专业便携版
  • IO流--字节流详解
  • linux安装mysql数据库
  • 如何下载适用于超宽屏显示的Google Chrome浏览器
  • CMake笔记:find_package工作原理
  • 如何清理Windows系统中已失效或已删除应用的默认打开方式设置
  • 国产DTU!工业DTU“性能翻倍+功耗减半”双突破!
  • 中科院数据生成赋能具身导航!WCGEN:基于世界一致性数据生成的视觉语言导航
  • 退役淘汰的硬盘数据安全处置不可忽视-硬盘数据抹除清零
  • 目标检测:视觉系统中的CNN-Transformer融合网络
  • LeetCode面试经典 150 题(Java题解)
  • c++_csp-j算法 (3)