zoukankan      html  css  js  c++  java
  • 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
    

     

  • 相关阅读:
    微信自动回复
    pyqt5生成的APP制作DMG
    win10 安装MySQL过程和遇到的坑
    CentOS7 虚拟机设置文件共享 VMWareTools安装遇到的坑
    阿里云配置ssl证书服务遇到的几个问题和解决方法
    Linux基于libmemcached,php扩展memcached的安装
    PHP框架CodeIgniter--URL去除index.php
    javascript新窗口打开链接window.open()被阻拦的解决办法
    Centos6.5源码编译安装nginx
    MySQL批量修改数据库的字符集
  • 原文地址:https://www.cnblogs.com/xuyaping/p/6705659.html
Copyright © 2011-2022 走看看