• 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
    

     

  • 相关阅读:
    经典SQL语句大全
    主键,外键,主键表,外间表
    一个不错的shell 脚本教程 入门级
    初窥Linux 之 我最常用的20条命令
    try catch finally 用法
    一个初学者对于MVC架构的理解
    第二次阶段冲刺2(6月1号)
    第二次阶段冲刺1(5月31号)
    学习进度条十三(第14周)
    学习进度条十二(第13周)
  • 原文地址:https://www.cnblogs.com/xuyaping/p/6705659.html
Copyright © 2020-2023  润新知