Python内置函数

print(abs(2)) #求出绝对值
print(all(([],1,3)))  #传1个可跌倒对象,元素中包含的全部为可迭代对象,返回True 其他返回False #如果可迭代对象是空,就返回True
print(any((' ',None,[]))) #传1个可迭代对象,元素中包含1个可迭代对象,返回True 其他返回False
print(sum([1,23])) #传入1个可迭代对象,求和。
print(bin(3)) #求出二进制
print(bool(0)) #求出布尔值
print(bytes('张根'.encode('gbk')))
print(divmod(100,3)) #取出商和余数
print(hash("ssss"))

salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
}
f=lambda k: salaries[k]
print(max(salaries,key=lambda k: salaries[k]))
print(sorted(salaries,key=lambda x:salaries[x],reverse=True))
#默认按字典的键比较,如果有key关键字按照 key里面定义的函数执行结果比较; 
#参数key用来指定一个函数,此函数在每次元素比较时被调用,此函数代表排序的规则,也就是你按照什么规则对你

序列进行排序;
# 也可以把函数传入 max 和sorted 后面函数 将传入 sorted传入迭代器 salary ,next序列salary一个逐一比较字典的值;
print(sorted(salaries,key=lambda x:salaries[x] ))

print(sorted(salaries,key=lambda x:salaries[x]))

from functools import reduce
l=['游勤兵','方少伟','高路川']
l1=[1,2,3,4]

map函数 将旧列表的内容,映射到一个新的列表;

g
=map(lambda x:x+"2",l) #map (函数,可迭代对象) 返回一个迭代器 for i in g: print(i)
reduce函数 将现有的数据内容,合并整合成一个新的列表;
#需要从第三方模块中导入 from functools import reduce
print(reduce( lambda x,y:x+y ,l1 ))  #reduce(函数,可迭代对象)
filter函数 讲现有的内容,按一定的规则过滤出来到一个新的列表;
get=filter(lambda f: f <5 ,l1) #filter(函数,可迭代对象) 返回以个迭代器 for i in get: print(i)

 

 匿名函数

  匿名  形参 返回值=代码块
g=lambda i: i**2
print(g(5))


练习
print('=====================作业一'.center(50))
print('1、用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb')
name=['alex','wupeiqi','yuanhao']
g1=map(lambda i:i+'sb',name )
for i in g1:
    print(i)

print("2、用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾")
l=[{'name':'alex'},{'name':'y'}]
g2=map(lambda i:i['name']+'sb' ,l )
for i in g2:
    print(i)


print('=====================作业二'.center(50))

shares={
    'IBM':36.6,
    'Lenovo':23.2,
    'oldboy':21.2,
    'ocean':10.2,
}
print(shares)
print('1、用filter来处理,得到股票价格大于20的股票名字')
f3=filter(lambda d:d>20 ,shares.values())
for i in f3:
    print(i)



print('=====================作业二'.center(50))
print('1、如下,每个小字典的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}
]
print(portfolio)

print('1:map来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格')

g4= map(lambda f:f['shares']*f['price'], portfolio)
for i in g4:
    print(i)
l=list(map(lambda f:f['shares']*f['price'], portfolio))
print('2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱')
from functools import reduce
print(l)
print(reduce(lambda x,y:x+y,l))

print('3、:用filter过滤出,单价大于100的股票有哪些')

g5=filter(lambda i:i['price'] <100,portfolio)
for i in g5:
    print(i)

执行结果

 

             =====================作业一             
1、用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
alexsb
wupeiqisb
yuanhaosb
2、用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
alexsb
ysb
             =====================作业二             
{'IBM': 36.6, 'Lenovo': 23.2, 'oldboy': 21.2, 'ocean': 10.2}
1、用filter来处理,得到股票价格大于20的股票名字
36.6
23.2
21.2
             =====================作业二             
1、如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
[{'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来得出一个包含数字的迭代器,数字指的是:购买每支股票的总价格
9110.0
27161.0
4218.0
1111.25
735.7500000000001
8673.75
2:基于1的结果,用reduce来计算,购买这些股票总共花了多少钱
[9110.0, 27161.0, 4218.0, 1111.25, 735.7500000000001, 8673.75]
51009.75
3、:用filter过滤出,单价大于100的股票有哪些
{'name': 'IBM', 'shares': 100, 'price': 91.1}
{'name': 'FB', 'shares': 200, 'price': 21.09}
{'name': 'HPQ', 'shares': 35, 'price': 31.75}
{'name': 'YHOO', 'shares': 45, 'price': 16.35}

 

 

 

转载于:https://www.cnblogs.com/sss4/p/6703719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值