zoukankan      html  css  js  c++  java
  • python(21)- python内置函数练习

    题目一:
    用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
    name=['alex','wupeiqi','yuanhao']

    name=['alex','wupeiqi','yuanhao']
    m=map(lambda i:i+"_sb",name)   # map()  映射,第一个参数为函数,第二个参数为可迭代对象
    #lambda i:i+"_sb"为匿名函数,i为匿名函数参数,i+"_sb"为函数的返回值。迭代取name的元素赋值匿名函数i。
    
    print(list(m))
    ---->['alex_sb', 'wupeiqi_sb', 'yuanhao_sb']
    

    用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
    l=[{'name':'alex'},{'name':'y'}]

    l=[{'name':'alex'},{'name':'y'}]
    m=map(lambda k:k["name"]+"sb",l)  #注解同上一题
    print(list(m))
    ---->['alexsb', 'ysb']
    

    题目二:

    用filter来处理,得到股票价格大于20的股票名字

    shares={
    'IBM':36.6,
    'Lenovo':23.2,
    'oldboy':21.2,
    'ocean':10.2,
    }
    shares={
    	'IBM':36.6,
    	'Lenovo':23.2,
    	'oldboy':21.2,
    	'ocean':10.2,
    }
    
    m=filter(lambda key:shares[key]> 20,shares)  #匿名函数的用法,题目一有详细注释
    #filter函数的用法和map()函数类似,但filter返还的是key值。参考题目一
    print(list(m))
    ---->['IBM', 'Lenovo', 'oldboy']


    题目三:
    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来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
    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}
    ]
    m=map(lambda k:k['shares']*k['price'],portfolio)
    #k 为从portfolio列表中迭代得到的集合{'name': 'IBM', 'shares': 100, 'price': 91.1}等
    print(list(m))
    ----->[9110.0, 27161.0, 4218.0, 1111.25, 735.7500000000001, 8673.75]
    
    2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
    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}
    ]
    from functools import reduce
    m=map(lambda k:k['shares']*k['price'],portfolio)
    m=list(m)
    res=reduce(lambda x,y:x+y,m)  #从列表m中迭代取
    print(res)
    --->51009.75
    

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

    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}
    ]
    
    m=filter(lambda k:k['price'] > 100 ,portfolio)
    print(list(m))
    ----->[{'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'ACME', 'shares': 75, 'price': 115.65}]
    

      

  • 相关阅读:
    poj3321(dfs序+线段树)
    poj3321(dfs序+线段树)
    Codeforces Global Round 3 B
    Codeforces Global Round 3 B
    2019河北省大学生程序设计竞赛 L .smart robot
    P2617 Dynamic Rankings(动态区间主席树)
    Linux从入门到精通——linux的系统排错
    Linux从入门到精通——Linux的系统延时任务及定时任务
    Linux从入门到精通——linux中的软件管理
    Linux从入门到精通——lvm逻辑券
  • 原文地址:https://www.cnblogs.com/xuyaping/p/6705848.html
Copyright © 2011-2022 走看看