python(20)- 列表生成式和生成器表达式练习Ⅱ

题目一:

有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字
linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
python=['dragon','钢弹','zhejiangF4','小虎比']

问题一:得出既报名linux又报名python的学生列表

#常规写法:
linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
python=['dragon','钢弹','zhejiangF4','小虎比']
l=[]
for i in linux:
    for j in python:
        if i==j:
            l.append(i)
print(l)
---->['钢弹', '小虎比'] #列表生成式写法 linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao'] python=['dragon','钢弹','zhejiangF4','小虎比'] l=[j for i in linux for j in python if i==j] print(l)
---->['钢弹', '小虎比']

问题二:得出只报名linux,而没有报名python的学生列表

#常规写法
linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
python=['dragon','钢弹','zhejiangF4','小虎比']
l=[]
for i in linux:
    if i not in python:
        l.append(i)
print(l)
---->['小壁虎', 'alex', 'wupeiqi', 'yuanhao']

#列表生成式写法
linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
python=['dragon','钢弹','zhejiangF4','小虎比']
l=[i for i in linux if i not in python]
print(l)
---->['小壁虎', 'alex', 'wupeiqi', 'yuanhao']

问题三:得出只报名python,而没有报名linux的学生列表

linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
python=['dragon','钢弹','zhejiangF4','小虎比']
l=[i for i in python if i not in linux]
print(l)
----->['dragon', 'zhejiangF4']

 

 

题目二:

shares={
    'IBM':36.6,
    'lenovo':27.3,
    'huawei':40.3,
    'oldboy':3.2,
    'ocean':20.1
    }

问题一:得出股票价格大于30的股票名字列表

#常规写法
l=[]
for i in shares:
    if shares[i] > 30:
        l.append(i)
print(l)
---->['IBM', 'huawei']
#列表表达式写法 l=[i for i in shares if shares[i] > 30] print(l)
---->['IBM', 'huawei']

  

问题二:求出所有股票的总价格

l=[shares[i] for i in shares]
print(sum(l))
---->127.5

 

题目三:

l=[10,2,3,4,5,6,7]
得到一个新列表l1,新列表中每个元素是l中对应每个元素值的平方
过滤出l1中大于40的值,然后求和

#列表写法
l=[10,2,3,4,5,6,7]
l1=[i**2 for i in l]
print(l1)
---->[100, 4, 9, 16, 25, 36, 49]

l2=[j for j in l1 if j >40]
print(l2)
----->[100, 49]

print(sum(l2))
----->149

 

转载于:https://www.cnblogs.com/xuyaping/p/6705659.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值