python 内置函数02
1. lambda 匿名函数
lambda 参数: 返回值
#常规计算两个数相加的函数
def func(a,b):
return a+b
print(func(1,9))
#lambda函数
my_add=lambda a,b:a+b
print(my_add(1,2))
2. sorted 排序
sorted(iterable, key=func, reverse=True/False)
执行流程:
把可迭代对象中的每一个元素拿出来, 放到func中运行. 返回一个数字. 根据数字进行排序
lis=["s","as","good","bash"] new_lis1=sorted(lis)#['as', 'bash', 'good', 's'] new_lis2=sorted(lis,key=lambda el:ascii(el))#['as', 'bash', 'good', 's'] new_lis3=sorted(lis,key=lambda el:ascii(el),reverse=True)#['s', 'good', 'bash', 'as'] new_lis4=sorted(lis,key=lambda el:ascii(el),reverse=False)#['as', 'bash', 'good', 's'] print(new_lis1) print(new_lis2) print(new_lis3) print(new_lis4)
3. filter 筛选
filter(func, Iterable)
执行流程:
把可迭代对象中的每一个元素拿出来, 放到func中运行.返回True/False. 根据返回的True和False来决定这个数据是否保留
lst = [{"id": 1, "name": 'bgm', "age": 18},
{"id": 2, "name": 'girl', "age": 16},
{"id": 3, "name": 'cat', "age": 17},
{"id": 4, "name": 'salt', "age": 37}]
#现在按照年龄筛选大于等于18的
f=list(filter(lambda dic:dic["age"]>=18,lst))
print(f)#[{'id': 1, 'name': 'bgm', 'age': 18}, {'id': 4, 'name': 'salt', 'age': 37}]
4. map 映射
map(func, Iterable)
执行流程:
把可迭代对象中的每一个元素拿出来, 放到func中运行.返回数据就是结果
lst=[1,3,4,6,8,9,13,15] s=list(map(lambda x:x**2,lst)) print(s)#[1, 9, 16, 36, 64, 81, 169, 225]
5. 递归(难点)
自己调用自己
递归的入口
递归的出口: return
递归的循环条件:动
循环树形结构:
#用递归来数1-100
def func(num):
print(num)
if num==100:
return
func(num+1)
func(1)
6. 二分法查找
核心思想: 掐头结尾取中间.
前提条件: 有序.
lst=[1, 1, 1, 1, 2, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 7, 8, 8, 9, 16, 32, 44, 55, 78, 89]
n=9
left=0
right=len(lst)-1
while left<=right:
mid = (right+left) // 2
if n>lst[mid]:
left=mid+1
elif n<lst[mid]:
right=mid-1
else:
print("这个数在里面")
break
else:
print("这个数不在此列表")
1,用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
name=[‘oldboy’,'alex','wusir']
name=["hahah",'xxx','class'] new_name=list(map(lambda el:el+"_sb",name)) print(new_name)
1,用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
l=[{'name':'alex'},{'name':'y'}]
l=[{'name':'skt'},{'name':'y'}]
new_l=list(map(lambda dic:dic["name"]+"_sb",l))
print(new_l)
6,用filter来处理,得到股票价格大于20的股票名字
shares={
'IBM':36.6,
'Lenovo':23.2,
'baidu':21.2,
'ocean':10.2,
}
# for i in shares:
# print(i)
f=list(filter(lambda key:shares[key]>20,shares))
print(f)
7,有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
结果:list一下[9110.0, 27161.0,......]
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}]
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}]
portfolio_new=list(map(lambda dic:dic["shares"]*dic["price"],portfolio))
print(portfolio_new)#[9110.0, 27161.0, 4218.0, 1111.25, 735.7500000000001, 8673.75]
8,还是上面的字典,用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}]
f=list(filter(lambda dic:dic["price"]>100,portfolio))
print(f)
9,有下列三种数据类型,
l1 = [1,2,3,4,5,6]
l2 = ['oldgirl','any','wsbsir','太白','日天']
tu = ('**','***','****','*******')
写代码,最终得到的是(每个元祖第一个元素>2,第三个*至少是4个)
[(3, 'wusir', '****'), (4, '太白', '*******')]这样的数据。
l1 = [1,2,3,4,5,6]
l2 = ['oldgirl','any','wsbsir','太白','日天']
tu = ('**','***','****','*******')
f=list(filter(lambda lis:lis[0]>=3,zip(l1,l2,tu)))
print(f)#[(3, 'wsbsir', '****'), (4, '太白', '*******')]
有如下数据类型:
l1 = [ {'sales_volumn': 0},
{'sales_volumn': 108},
{'sales_volumn': 337},
{'sales_volumn': 475},
{'sales_volumn': 396},
{'sales_volumn': 172},
{'sales_volumn': 9},
{'sales_volumn': 58},
{'sales_volumn': 272},
{'sales_volumn': 456},
{'sales_volumn': 440},
{'sales_volumn': 239}]
将l1按照列表中的每个字典的values大小进行排序,形成一个新的列表。
l1 = [ {'sales_volumn': 0},
{'sales_volumn': 108},
{'sales_volumn': 337},
{'sales_volumn': 475},
{'sales_volumn': 396},
{'sales_volumn': 172},
{'sales_volumn': 9},
{'sales_volumn': 58},
{'sales_volumn': 272},
{'sales_volumn': 456},
{'sales_volumn': 440},
{'sales_volumn': 239}]
ll_new=sorted(l1,key=lambda dic:dic['sales_volumn'])
print(ll_new)
python 内置函数02的更多相关文章
- 【286】◀▶ Python 内置函数说明
参考: Python 内置函数 01 abs() 返回数字的绝对值. 02 all() 用于判断给定的可迭代参数 iterable 中的所有元素是否不为 0.''.False 或者 itera ...
- python内置函数print输出到文件,实现日志记录的功能
# bulid time 2018-6-22 import os import time def log(*args, **kwargs): # *kargs 为了通用 可不传 rule = &quo ...
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- python 内置函数和函数装饰器
python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...
- Python基础篇【第2篇】: Python内置函数(一)
Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...
- [python基础知识]python内置函数map/reduce/filter
python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...
- Python内置函数进制转换的用法
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- Python内置函数(12)——str
英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...
- Python内置函数(61)——str
英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...
随机推荐
- ruby学习笔记(2)-chomp,chop的区别
还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...
- Azkaban 工作流调度器
Azkaban 工作流调度器 1 概述 1.1 为什么需要工作流调度系统 a)一个完整的数据分析系统通常都是由大量任务单元组成,shell脚本程序,java程序,mapreduce程序.hive脚本等 ...
- idea alt+enter导包时被锁定导某一个包时的解决方法
在只有一个包指向的时候,把光标放在Test这种字符之间的话 就会直接导这个 所以把光标放在最后就可以导别的了
- Django模型层:单表操作
一 ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装
- selenium webdriver API详解(一)
本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:打开某个网址:get() from selenium import ...
- ython进阶06 循环对象
这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本概念. 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标 ...
- HttpServletResponse 之 sendError( )
直接返回http 401状态,提示重新登录 response.sendError(401, "当前账户未登录或会话失效,请重新登录!) HTTP状态码列表: 100Continue继续.客户 ...
- AWS/阿里/Azure,云厂商价格大PK
以下选取热门型号Linux虚拟机,AWS和Azure的虚拟机配置包括本地SSD临时盘,阿里云虚拟机不带本地SSD临时盘,而且需要另配网卡带宽.以下价格为人民币含税(6%) 按使用量网站直接付费购买(O ...
- Pycharm实现服务器端代码的远程调试
Pycharm是很多人在学习机器学习时的常用IDE.但是,当代码需要庞大计算资源的时候,我们往往需要借助远程服务器的GPU资源.很多人都是将代码拷贝到服务器,然后运行,但是当修改调试的时候,很不方便 ...
- Javascript中Generator(生成器)
阅读目录 Generator的使用: yield yield* next()方法 next()方法的参数 throw方法() return()方法: Generator中的this和他的原型 实际使用 ...