生成器表达式练习

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)))

 



 



  

以上是关于生成器表达式练习的主要内容,如果未能解决你的问题,请参考以下文章

grep正则表达式详解及练习

结队编程练习 2

JAVA练习99-逆波兰表达式求值

20172320『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

172328 结对编程练习_四则运算 第一周 阶段总结

结对编程练习_四则运算