zoukankan      html  css  js  c++  java
  • Python练习-内置函数的应用

    说真的,我感觉这几天egon没有睡好,或者是egon心里有事儿,练习给留的太过简单了

     1 # 编辑者:闫龙
     2 # 用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
     3 #name=['alex','wupeiqi','yuanhao'] 既然都Somebody了,那么请给我一个不用egon的理由
     4 name=['egon','lin','hai','feng']
     5 print(list(map(lambda newname : newname+"_sb",name)))
     6 #以下为解读代码
     7 #将name列表传递给lambda匿名函数进行遍历,返回newname变量
     8 # 然后让newname变量中的值逐个+"_sb",最终将返回值传递给m
     9 m = map(lambda newname : newname+"_sb",name)
    10 print(m)#<map object at 0x0000028FA3BA46A0>
    11 l = list(m)#将m由map类型转为list类型,用于print打印
    12 print(l)#['egon_sb', 'lin_sb', 'hai_sb', 'feng_sb']
    13 
    14 
    15 #用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
    16 #l=[{'name':'alex'},{'name':'y'}]既然都Somebody了,那么请给我一个不用egon的理由
    17 l=[{'name':'linhaifeng'},{'name':'egon'}]
    18 print(list(map(lambda newname:{"name":newname["name"]+"_sb"}, l)))
    19 #以下为解读代码
    20 #将l列表传递给lambda匿名函数进行遍历,返回newname变量
    21 # newname变量是({"name":"linhaifeng"},{"name":"egon"})
    22 # 让newname逐个提取name对应的value逐个+"_sb",最终将返回值传递给m
    23 m=map(lambda newname:{"name":newname["name"]+"_sb"},l)
    24 print(m)#<map object at 0x000001B7B24D4898>
    25 l = list(m)#将m由map类型转为list类型,用于print打印
    26 print(l)#['linhaifeng_sb', 'egon_sb']
    map函数练习

    来回来去,练了好几遍,一开始还可以

     1 # 编辑者:闫龙
     2 #用filter来处理,得到股票价格大于20的股票名字
     3 shares={
     4     'IBM':36.6,
     5     'Lenovo':23.2,
     6     'oldboy':21.2,
     7     'ocean':10.2,
     8 }
     9 #代码解读:
    10 #变量fi接受filter筛选出来的结果
    11 #匿名函数中price得到的是shares中的keys
    12 # 也就是说如果要提取shares中的value,就必须要shares[price]
    13 #大于20的全部返回给fi
    14 fi=filter(lambda price:shares[price] > 20,shares)
    15 print(list(fi))#将fi转型为list类型,打印
    16 #['oldboy', 'Lenovo', 'IBM']
    filter函数练习

    然后发现,越来越无聊,越来越无聊,Somebody你要振作啊

     1 # 编辑者:闫龙
     2 #如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
     3 portfolio = [
     4     {'name': 'IBM', 'shares': 100, 'price': 91.1},
     5     {'name': 'AAPL', 'shares': 50, 'price': 543.22},
     6     {'name': 'FB', 'shares': 200, 'price': 21.09},
     7     {'name': 'HPQ', 'shares': 35, 'price': 31.75},
     8     {'name': 'YHOO', 'shares': 45, 'price': 16.35},
     9     {'name': 'ACME', 'shares': 75, 'price': 115.65}
    10 ]
    11 #1:map来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
    12 m = map(lambda sumprice:{sumprice["name"]:sumprice["price"]*sumprice["shares"]},portfolio)
    13 print(list(m))
    14 
    15 #2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
    16 from functools import reduce
    17 m = map(lambda sumprice:sumprice["price"]*sumprice["shares"],portfolio)
    18 r = reduce(lambda x,y:x+y,m)
    19 print(r)
    20 
    21 #3:用filter过滤出,单价大于100的股票有哪些
    22 fi = filter(lambda por:por["price"]>100,portfolio)
    23 print(list(fi))
    map/reduce/filter函数练习

    完事儿了,自己搞吧!

  • 相关阅读:
    数学之美:判断两个随机信号序列相似度
    为什么自己设计的嵌入式系统不如工业级产品稳定?
    由static来谈谈模块封装
    算法类书籍汇总
    Linux驱动:手把手教hello world驱动配置、编译进内核或为模块
    刨根问底之链表数据结构
    Redis进阶
    构建高可用的写服务
    再推荐 5 款私藏的优质 Chrome 插件
    MySQL-SQL优化
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6705392.html
Copyright © 2011-2022 走看看