生成器表达式练习
Posted 关灯吃面
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器表达式练习相关的知识,希望对你有一定的参考价值。
有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字
linux=[‘钢弹‘,‘小壁虎‘,‘小虎比‘,‘alex‘,‘wupeiqi‘,‘yuanhao‘]
python=[‘dragon‘,‘钢弹‘,‘zhejiangF4‘,‘小虎比‘]
问题一:得出既报名linux又报名python的学生列表
问题二:得出只报名linux,而没有报名python的学生列表
问题三:得出只报名python,而没有报名linux的学生列表
1 linux = [‘钢弹‘, ‘小壁虎‘, ‘小虎比‘, ‘alex‘, ‘wupeiqi‘, ‘yuanhao‘] 2 python = [‘dragon‘, ‘钢弹‘, ‘zhejiangF4‘, ‘小虎比‘] 3 # 问题一:得出既报名linux又报名python的学生列表 4 In_Linux_Python=(i for i in linux if i in python) #使用生成器表达式,得到一个生成器内存地址 5 print(list(In_Linux_Python)) #将生成器强制转化成列表输出 6 # 问题二:得出只报名linux,而没有报名python的学生列表 7 In_Linux_Not_Python = (i for i in linux if i not in python) 8 print(list(In_Linux_Not_Python)) 9 # 问题三:得出只报名python,而没有报名linux的学生列表 10 In_Python_Not_Linux = (i for i in python if i not in linux) 11 print(list(In_Python_Not_Linux))
shares={ ‘IBM‘:36.6, ‘lenovo‘:27.3, ‘huawei‘:40.3, ‘oldboy‘:3.2, ‘ocean‘:20.1 }
问题一:得出股票价格大于30的股票名字列表
问题二:求出所有股票的总价格
l=[10,2,3,4,5,6,7]
得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方
过滤出l1中大于40的值,然后求和
1 shares={ 2 ‘IBM‘:36.6, 3 ‘lenovo‘:27.3, 4 ‘huawei‘:40.3, 5 ‘oldboy‘:3.2, 6 ‘ocean‘:20.1 7 } 8 # 问题一:得出股票价格大于30的股票名字列表 9 share1 = (i for i in shares if shares[i]>30) 10 print(list(share1)) 11 12 # 问题二:求出所有股票的总价格 13 share1 = (shares[i] for i in shares ) 14 print(sum(list(share1))) 15 16 l=[10,2,3,4,5,6,7] 17 # 得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方 18 # 过滤出l1中大于40的值,然后求和 19 ll = (i**2 for i in l ) 20 ll = list(ll) 21 print(ll) 22 ll_sum = (i for i in ll if i >40) 23 print(sum(list(ll_sum)))
以上是关于生成器表达式练习的主要内容,如果未能解决你的问题,请参考以下文章