zoukankan      html  css  js  c++  java
  • python之函数联系

    ----------------------作业一

    # 有两个列表,分别存放来老男孩报名学习linux和python课程的学生名字
    # linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
    # python=['dragon','钢弹','zhejiangF4','小虎比']
    #
    # 问题一:得出既报名linux又报名python的学生列表
    # 问题二:得出只报名linux,而没有报名python的学生列表
    # 问题三:得出只报名python,而没有报名linux的学生列表


    linux=['钢弹','小壁虎','小虎比','alex','wupeiqi','yuanhao']
    python=['dragon','钢弹','zhejiangF4','小虎比']
    res1=[i for i in linux for j in python if i==j]
    print(res1)
    res2=[i for i in linux if i not in python]
    print(res2)
    res3=[i for i in python if i not in linux]
    print(res3)


    -----------------------作业二
    shares = {
    'IBM': 36.6,
    'lenovo': 27.3,
    'huawei': 40.3,
    'oldboy': 3.2,
    'ocean': 20.1
    }
    #
    # 问题一:得出股票价格大于30的股票名字列表
    # 问题二:求出所有股票的总价格
    res = [k for k,v in shares.items() if v>30]
    # print(res)
    total=sum([v for k,v in shares.items()])
    print(total)


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

    l1=[(x*x)for x in l]
    print(l1)
    res=(i for i in l1 if float(i)>40)
    print(res)
    total=sum(k for k in res)
    print(total)


    #print(list((x*x)for x in l))

    ---------------------------作业四
    #用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
    # name=['alex','wupeiqi','yuanhao']
    #用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
    # >>> l=[{'name':'alex'},{'name':'y'}]

    name=['alex','wupeiqi','yuanhao']
    name1=map(lambda name:name+"_sb",name)
    for i in name1:
    print(i)

    l=[{'name':'alex'},{'name':'y'}]
    m=map(lambda k:k["name"]+"sb",l)
    print(list(m))


    ------------------------作业五
    #用filter来处理,得到股票价格大于20的股票名字
    shares={
    'IBM':36.6,
    'Lenovo':23.2,
    'oldboy':21.2,
    'ocean':10.2,
    }


    f=filter(lambda d:shares[d]>20,shares)
    print(list(f))
    print(f)
    for i in f:
    print(i)


    -----------------------------作业六
    #如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
    portfolio = [
    {'name': 'IBM', 'shares': 100, 'price': 91.1},
    {'name': 'AAPL', 'shares': 50, 'price': 543.22},
    {'name': 'FB', 'shares': 200, 'price': 21.09},
    {'name': 'HPQ', 'shares': 35, 'price': 31.75},
    {'name': 'YHOO', 'shares': 45, 'price': 16.35},
    {'name': 'ACME', 'shares': 75, 'price': 115.65}
    ]

    # 1:map来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
    m=map(lambda d:d["shares"]*d["price"],portfolio)
    for i in m:
    print(i)
    # 2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
    from functools import reduce
    total=reduce(lambda x,y:x+y,m)
    print(total)

    # 3:用filter过滤出,单价大于100的股票有哪些


    f=filter(lambda d:d["price"]>100,portfolio)
    print(f)
    for i in f:
    print(i)
     
  • 相关阅读:
    .NET Cache缓存
    异步
    es6常用功能
    vue-router路由懒加载
    vue中nextTick和$nextTick
    动态模板中 swiper 划不动问题
    javaScript正则判断手机号
    Mac终端使用技巧
    alert IOS自带域名
    vue css background路径不对
  • 原文地址:https://www.cnblogs.com/asaka/p/6705532.html
Copyright © 2011-2022 走看看