Python入门-内置对象函数
1.callable()
查看函数知否可调用,可调用返回True,不可用返回False
print("input函数:", callable(input))
#input函数: True
2.eval()
print(eval("3+3"))
# 6
num = 10
s = "加法计算:{}"
var = dict(num =num, info = s)
res = eval("info.format(num *2)", var)
res
# '加法计算:20'
l = "[1,2,3]"
t = "(1,2,3)"
d = "{1:'one',2:'two',3:'three'}"
res = eval(l)
res2 = eval(t)
res3 = eval(d)
print(res, res2, res3)
print(type(res,),type(res2), type(res3))
"""
[1, 2, 3] (1, 2, 3) {1: 'one', 2: 'two', 3: 'three'}
<class 'list'> <class 'tuple'> <class 'dict'>
"""
3.exec()
num =10
exec("num += 11")
num
# 21 s = "for i in range(10):"\
"print(i,end= ',')"
res = exec(s)
print()
print(res)
"""
0,1,2,3,4,5,6,7,8,9,
None
"""
4.compie()
s = "11 + 22 "
code = compile(s, " ","eval")
res = eval(code)
res
# 33 s = "data = input('请输入:')"
code = compile(s,"", "single")
exec(code) print("输入数据为:", data)
"""
请输入: 99
输入数据为: 99
""" s = []
data = "for i in range(2):s.append(input('请输入:'))"
code = compile(data, "", "exec")
exec(code)
exec("print('经常访问的地址:',s)")
"""
请输入: baidu
请输入: google
经常访问的地址: ['baidu', 'google']
"""
5.map映射
#1.需求:已知[1,2,3,4,5],生成[1,4,9,16,25]
list1 = list(range(1,6))
def func(x):
return x ** 2
res = map(func,list1)
print(res)
print(list(res))
"""
<map object at 0x0000000005247100>
[1, 4, 9, 16, 25]
""" #2.两个列表求和
def add(x,y):
return x + y
result = map(add,[1,2,3],[4,5,6,7])
print(list(result))
#[5, 7, 9] #3.字符串转化
list1 = ["faf","Hello","AAA"]
result = list(map(lambda ch:ch.upper(),list1))
print(result)
#['FAF', 'HELLO', 'AAA'] """
注意:
1.map中的序列有几个,函数的参数一般设置几个【一一对应】
2.map中的函数一般都要设置返回值,否则生成的元素全部是None【将函数运算的结果存储在一个新的容器中】
3.多个序列的长度可以不一致,以元素个数少的序列作为参照
"""
6.reduce减少【累积】
from functools import reduce
"""
reduce(fn,Iterable) 功能:使用fn首先将Iterable中第0和第1个元素进行运算,将得到的结果和第2个元素进行运算。。。。
直到Iterable中元素全部参与运算
举例:
func(x,y)
[a,b,c,d] reduce(func,[a,b,c,d]) 工作原理:
func(func(func(a,b),c),d)
""" #1.需求:求 一个列表中所有的元素和
#方式一:设置函数
def test(x,y):
return x * y
result21 = reduce(test,range(1,11))
print(result21) #方式二:匿名函数
result22 = reduce(lambda x,y:x * y,range(1,11))
print(result22) #需求2:将列表[2,4,6,8]转换为整数2468
def check(x,y):
return x * 10 + y
result3 = reduce(check,[2,4,6,8])
print(result3) result31 = reduce(lambda x,y:x * 10 + y,[2,4,6,8])
print(result31)
map和reduce联合使用
#需求:使用map和reduce实现字符串转整型的操作,例如:"6523" --->6523
#第一步:建立映射关系
def strtoint(s):
dict1 = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6}
return dict1[s] result1 = list(map(strtoint,"6523"))
print(result1) #第二步:实现转换
result2 = reduce(lambda x,y:x * 10 + y,result1)
print(result2) #合起来写
result3 = reduce(lambda x,y:x * 10 + y,map(strtoint,"6532"))
print(result3)
7.filter过滤
"""
filter(fn,Iterable) 功能:通过一定的条件过滤可迭代对象中数据,
根据函数的返回值为True或者False决定是否保留元素,如果为True则保留,为False则过滤
"""
#案例演示一:将列表中的偶数元素保留,将奇数元素过滤
list1 = list(range(1,11))
def check(num):
if num % 2 == 0:
return True
else:
return False result1 = filter(check,list1)
print(result1)
print(list(result1))
"""
<filter object at 0x0000000005247C70>
[2, 4, 6, 8, 10]
""" #案例演示二:将其中为“无”的数据过滤掉
list2 = [["张三",18,100,"跳舞"],["lisi",15,95,"无"],["jack",19,60,"唱歌"]] def test(ch):
if ch == "无":
return False
return True newlist = []
for sublist in list2:
m = filter(test,sublist)
newlist.append(list(m))
print(newlist)
"""
[['张三', 18, 100, '跳舞'], ['lisi', 15, 95], ['jack', 19, 60, '唱歌']]
"""
8.sorted排序
#一、sort======================================================
list1 = [3,534,54,654,28]
print(list1)
#1.升序list1.sort()print(list1) #2.降序
list1.sort(reverse=True)
print(list1) #3.自定义排序规则
list1 = ["ff","6fhufhua","hello","aba"]
list1.sort(key=len,reverse=True)
print(list1) #4.自定义排序规则
list1 = ["ff","6fhufhua","hello","aba"]
def func(ch):
return ch.upper()
list1.sort(key=func)
print(list1)#二、sorted======================================================
list1 = [3,534,54,654,28]
print(list1)
#1.升序
list2 = sorted(list1)
print(list1)
print(list2) #2.降序
list3 = sorted(list1,reverse=True)
print(list3) #3.自定义排序规则
list1 = ["ff","6fhufhua","hello","aba"]
list4 = sorted(list1,key=len,reverse=True)
print(list4) #4.自定义排序规则
list1 = ["ff","6fhufhua","hello","aba"]
def func(ch):
return ch.upper() list2 = sorted(list1,key=func)
print(list2) """"
不同点:
1.经过排序,sorted相比较于sort,生成了一个新的列表
2.sort是属于列表的功能,但是,sorted中的数据可以是任意的可迭代对象 相同点:
1.进行降序排序时,都使用reverse=True
2.如果要自定义排序的规则,可以自定义函数,二者使用的都是key=函数名
"""
Python入门-内置对象函数的更多相关文章
- Python入门-内置函数一
什么是内置函数?就是python给你提供的拿来直接用的函数,比如print,input等等,截止到python版本3.6.2 python一共提供了68个内置函数,他们就是python直接提供给我们的 ...
- python 全栈开发,Day51(常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍)
昨日内容回顾 1.三种引入方式 1.行内js <div onclick = 'add(3,4)'></div> //声明一个函数 function add(a,b){ } 2. ...
- Python常用内置对象
1.在python中处理的一切都是对象. 2.内置对象可直接使用,如数字.字符串.列表.del等. 3.非内置对象需要导入模块才能使用,如正弦函数sin(x),随机数产生函数random()等.
- js简介 基本操作 以及循环语句 内置对象 函数044
js 全称 javascript 从交互的角度 描述行为 一 .js注释方法: //单行注释 声明变量 var 二 .声明多个变量 : var a = '2' ,b = 4, c = tru ...
- 前端JavaScript(2) --常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍
昨日内容回顾 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ...
- Python入门-内置函数二
看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用 ...
- Python面向对象——内置对象的功能扩展
1.扩展Python内置类 Python的数据类型 列表(list).字典(dict).集合(set).文件(file).字符串(str),这些都是对象 扩展list的功能,详解如图: 我们给列表添加 ...
- Python descriptor 以及 内置property()函数
Python Descriptor 1, Python Descriptor是这样一个对象 它按照descriptor协议, 有这样的属性之一 def __get__(self, obj, type ...
- python——内置对象
python的内置对象 对象类型 常量示例/用法 Number(数字) 3.14159, 1234, 999L 3+4j String(字符串) 'spam', "guido's" ...
随机推荐
- Js-左侧折叠
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 2、mysql如何控制用户对数据库的访问
基础理解:通过对用户赋予某些权限就可以控制用户对数据库的访问 更深层次的理解:当mysql对用户赋予某些权限时,mysql底层是如何控制用户对数据库的访问 用户管理和权限管理 (基础理解) 用户管理 ...
- 2.2 C++STL string容器详解
文章目录 引言 2.2.1 string的特性 2.2.2 string用法理论 2.2.2.1 string构造函数 2.2.2.2 string赋值操作 2.2.2.3 string取值操作 2. ...
- 常用正则表达式与python中的re模块
正则表达式是一种通用的字符串匹配技术,不会因为编程语言不一样而发生变化. 部分常用正则表达式规则介绍: . 匹配任意的一个字符串,除了\n * 匹配任意字符串0次或者任意次 \w 匹配字母.数字.下划 ...
- 嵌套OOPS导致系统卡死 每个CPU都上报softlockup的问题
问题现象:在ARM服务器上,构造oops异常,本应该产生panic,进入dump流程,并且系统重启,但是系统并未重启,而是出现了卡死,在串口会隔一段时间就循环打印调用栈信息.如下所示 linux-fA ...
- Apache HBase MTTR 优化实践
HBase介绍 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠.高性能.面向列和可伸缩的特性,提供快速随机访问海量数据能力. H ...
- 为什么ado,biz层得先写个接口,然后再实现?
为什么ado,biz层得先写个接口,然后再实现?在我写的那个案例中不定义接口也可以 在实际开发中,一个项目肯定不是一个人完成的,这时需要项目经理的角色统一定义接口,负责不同功能模块的开发人员只需实现相 ...
- List 和 Map 区别?
表面来看,List是一个只是存放单个元素的集合,List集合所包含的元素可以重复,元素按放入的先后顺序来存放,程序可以通过元素的索引来读取元素,因此List相当于一个动态数组:Map则是一个存放key ...
- 请说说你对Struts2的拦截器的理解?
Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 拦截器栈(Interceptor Stac ...
- Oacle 插入多条记录的语法理解;INSERT ALL INTO ....... SELECT 1 FROM dual;
单表Insert into的语句就不说了,这里主要说插入多条语句的说明 For a multitable insert operation, each expression in the values ...