黑马程序员技术交流社区

标题: 【上海校区】Python中的列表、字典、集合生成式 [打印本页]

作者: 尹亮    时间: 2018-12-1 17:35
标题: 【上海校区】Python中的列表、字典、集合生成式
本帖最后由 尹亮 于 2018-12-1 17:37 编辑

1、列表生成式
[Python] 纯文本查看 复制代码
[“函数” for i in "序列" if "判断语句"]


举例说明:

[Python] 纯文本查看 复制代码
# 对[2,10)之间的偶数求平方
[i**2 for i in range(2,10,2) ]
# 对[2,10)之间的偶数进行函数fun()操作
[fun(i) for i in range(2,10,2)]
# 对[2,10)之间的偶数且能被3整除的数求平方
[i**2 for i in range(2,10,2) if i%3==0]
# 对[2,10)之间的偶数且能被3整除的数进行fun()操作
[fun(i) for i in range(2,10,2) if i%3==0]
# 对满足isFun()函数且在[2,10)之间的偶数进行fun()操作
[fun(i) for i in range(2,10,2) if isFun(i)]
# [2,10)之间的偶数若满足isfun(i) 则进行Fun(i)否则进行fun2(2)
[fun1(i) if isFun(i) else fun2(i) for i in range(2,10,2)]

```
2、字典生成式

[Python] 纯文本查看 复制代码
{k:v for k,v in "序列" if "判断语句"]



[Python] 纯文本查看 复制代码
d1 = {'A':10, 'b':3, 'a':5, 'B':8, 'd':1}
print({k.lower(): d1.get(k.upper(),0)+d1.get(k.lower(),0) for k,v in d1.items()})


3、集合生成式
集合生成式与列表生成式类似,只是没有value值

[Python] 纯文本查看 复制代码
s = {1,2,3,4,5,6,7}
print({i**2 for i in s })




作者: 不二晨    时间: 2018-12-5 16:46





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2