博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 推导式
阅读量:4958 次
发布时间:2019-06-12

本文共 1258 字,大约阅读时间需要 4 分钟。

推导式 comprehensions(又称解析式),是 python 的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列。

1.1列表推导式

语法:

  • 变量名 = [表达式 for 变量 in 列表 for 变量 in  xxx]
  • 变量名 = [表达式 for 变量 in 列表 if 条件]

语义:

  • 遍历出列表中的内容给变量,表达式根据变量值进行逻辑运算。或者遍历列表中的内容给变量,然后进行判断,符合的值在给表达式。

练习1:快速创建一个包含元素1-10的列表

list1 = [i for i in range(1, 11)]print(list1)

  

练习2:快速创建一个包含1-10之间所有偶数的列表

list1 = [i for i in range(1, 11) if i % 2 == 0]print(list1)

  

练习3:现在有一列表 lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ,求出 1/4/7 和 1/5/9元素,思考如何取出

# 使用列表推导式:lst = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]lst1 = [lst[i][0] for i in range(len(lst))]print(lst1)lst2 = [lst[i][i] for i in range(len(lst))]print(lst2)

面试题:求

a = [lambda x: x * i for i in range(3)]  # 此处定义了一个装了 3 个匿名函数函数的列表,尚未调用匿名函数,                                         # 调用时全局变量 i 变为 2 相当于 a = [lambda x:x*2, lambda x:x*2, lambda x:x*2]print(type(a[0]), "---", a[0])  # -> x为函数形参,i为全局变量,程序执行到此处i变为2print(a[0](2))print(a[1](2))print(a[2](2))

2字典推导式

  • 字典推导式列表推导式思想的延续,语法差不多,只不过产生的是字典而已。
  • 字典推导式格式:
  •  变量名 = {....}
  • 练习:将字典中的 key 和 value 进行对换。
2.2字典推导式字典推导式列表推导式思想的延续,语法差不多,只不过产生的是字典而已。字典推导式格式:变量名 = {....}练习:将字典中的 key 和 value 进行对换。

3集合推导式

  • 集合推导式跟列表推导式非常相似,唯一区别在于用 { } 代替 [ ]
  • 练习:
  • 创建一个存储10个偶数的集合
set1 = {x for x in range(10) if x % 2 == 0}print(set1)

 

 

转载于:https://www.cnblogs.com/songdanlee/p/11104725.html

你可能感兴趣的文章
两个经典问题
查看>>
lua 打印一个table的实现
查看>>
canvas动画:气泡上升效果
查看>>
作业 4:词频统计——基本功能
查看>>
并发编程
查看>>
SQL RIGHT JOIN 关键字
查看>>
How to SetUp The Receiving Transaction Manager
查看>>
css实现的鼠标悬浮提示
查看>>
Ubuntu网络配置与SSH远程连接
查看>>
Vector、 ArrayList 、List、 Set、 Map
查看>>
浅谈输入法编程(转)
查看>>
电子书下载:Building Websites with DotNetNuke 5
查看>>
poj2479与poj2593 , 同一道DP题
查看>>
篆刻1
查看>>
LINUX常用命令
查看>>
我们的团队
查看>>
wordcount2--realized by c
查看>>
什么是产品经理的思维方式?
查看>>
文本三剑客之awk
查看>>
poj1330---Nearest Common Ancestors
查看>>