21番茄网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 21番茄网
查看: 773|回复: 2

python推导式

[复制链接]

650

主题

805

帖子

2706

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2706
发表于 2021-1-20 16:25:03 | 显示全部楼层 |阅读模式
python推导式

推导式 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)

运行结果:[1,2,3,4,5,6,7,8,9,10]

python推导式  Python基础语法 line2
                               
登录/注册后可看大图


练习2:快速创建一个包含1-10之间所有偶数的列表
list1 = [i for i in range(1, 11) if i % 2 == 0]
print(list1)

运行结果:
[2,4,6,8,10]

python推导式  Python基础语法 line2
                               
登录/注册后可看大图


练习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[0] for i in range(len(lst))]
print(lst1)
lst2 = [lst for i in range(len(lst))]
print(lst2)

运行结果:
[1,4,7]
[1,5,9]


python推导式  Python基础语法 line2
                               
登录/注册后可看大图


面试题:求
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变为2
print(a[0](2))
print(a[1](2))
print(a[2](2))

运行结果:
4
4
4


来自:https://www.cnblogs.com/songdanlee/p/11104725.html




上一篇:字典合并
下一篇:Python列表、元组、字符串方法
回复

使用道具 举报

650

主题

805

帖子

2706

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2706
 楼主| 发表于 2021-1-20 16:35:01 | 显示全部楼层
2.字典推导式

       字典推导式列表推导式思想的延续,语法差不多,只不过产生的是字典而已。
       字典推导式格式:
       变量名 = {....}

练习:将字典中的 key 和 value 进行对换。

回复

使用道具 举报

650

主题

805

帖子

2706

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2706
 楼主| 发表于 2021-1-20 16:37:06 | 显示全部楼层
3集合推导式
      集合推导式跟列表推导式非常相似,唯一区别在于用 { } 代替 [ ]

练习:
      创建一个存储10个偶数的集合

set1 = {x for x in range(10) if x % 2 == 0}
print(set1)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|21番茄网 ( 粤ICP备10099428号 ) 奇远富

GMT+8, 2024-5-15 03:36 , Processed in 0.378703 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表