当前位置: 首页 > 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)

相关文章:

  • C# 封装教程
  • 【SF顺丰】顺丰开放平台API对接(注册、API测试篇)
  • 《一次静态 ObjectMapper 引发的 RocketMQ 消费异常排查》
  • 极刻云搜-专业的软件网址搜索引擎
  • Linux421用户、组
  • 移动端动态滑动拨盘选择器【Axure元件库】
  • CMake execute_process用法详解
  • HyperDefect-YOLO:基于超图计算的工业缺陷检测算法解析
  • cdq 系列 题解
  • arkTs:使用Refresh实现下拉刷新功能(含状态提示与动画控制)
  • 并发设计模式之双缓冲系统
  • 基于SpringBoot的心情疗愈平台-项目分享
  • oracle rac时区问题导致远程查询时间不准
  • 报告系统状态的连续日期 mysql + pandas(连续值判断)
  • 【MySQL】数据库安装
  • Python Cookbook-6.6 在代理中托管特殊方法
  • Flowith AI,解锁下一代「知识交易市场」
  • C语言 函数(上)
  • CAD文件如何导入BigemapPro
  • Java:多线程
  • 黎巴嫩“伊斯兰集团”组织证实其高级成员在以军空袭中丧生
  • 平均25岁,天津茱莉亚管弦乐团进京上演青春版《春之祭》
  • 市场监管部门完成全国保健食品生产企业体系检查首轮全覆盖
  • 大国重器飞天背后,有一位上海航天的“老法师”
  • 韩国一战机飞行训练中掉落机炮吊舱和空油箱
  • 体坛联播|中国U16女足击败墨西哥,王星昊首获世界冠军