python——内置函数匿名函数

Posted d97272015

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python——内置函数匿名函数相关的知识,希望对你有一定的参考价值。

一、内置函数

内置函数操作 
 1
# 
# 1.locals()和globals()
# def func():
#     x=1
#     y=2
#     print(locals())
#     print(globals())
# func()

# 2.eval,exec,和compile
# print(123)
# "print(456)"#字符串
# eval("print(456)")#吧字符串转换成python代码去执行(有返回值)
# exec("print(7889)")#吧字符串转换成python代码去执行(无返回值)
# num = eval(‘4+5+6‘)#执行了,有返回值
# print(num)
#
# num = exec(‘4+5+6‘)#执行了,没有返回值
# print(num)
# compile#做编译
# com=compile(‘1+2+3‘,‘‘,mode = ‘eval‘)#节省时间
# print(eval(com))
# print(eval(‘1+2+3‘))#这句效果和上面的compile()效果一样


# 3.print
# print(‘123‘,end=‘‘)#不换行
# print(‘456‘,end=‘‘)

# print(1,2,3)
# print(1,2,3,4,5,6,sep=‘,‘)



# print()函数的小例子
# import time
# import sys
# for i in range(0,101,2):
#     time.sleep(0.1)
#     char_num = i//2      #打印多少个#
#     per_str = ‘%s%% : %s\\n‘ % (i, ‘*‘ * char_num) if i == 100 else ‘\\r%s%% : %s‘%(i,‘*‘*char_num)
#     print(per_str,end=‘‘, file=sys.stdout, flush=True)

# import sys
# for i in range(0, 101, 2):
#     time.sleep(0.1)
#     char_num = i // 2
#     per_str = ‘\\r%s%% : %s‘ % (i, ‘*‘ * char_num)
#     print(per_str, file=sys.stdout, flush=True)

# 4.input()
# 5.type()
# 6.hash
# print(hash(‘asdsffd‘))#一开始几个都是不变的,,然后重新运行一次就变了
# print(hash(‘asdsffd‘))
# print(hash(‘asdsffd‘))
# print(hash(‘asdsffd‘))
# print(hash(‘asdsffd‘))
# print(hash((1,2,3,4)))

# 7.open
# r,w,a,r+,w+,a+(都可以加b)
# f=open(‘tmp‘,‘r+‘)#r+打开文件
# print(f.read(3))#如果读了在写,追加
# f.seek(5)#如果seek指定了光标的位置,就从该位置开始覆盖这写
# f.write(‘aaaaaa‘)#如果直接写,从头覆盖
# f.close()


# 8.__import__()
# import os
# import sys
# import time

# 9.callable:查看能不能调用
# print(callable(123))#数字不能调用结果就是False
# print(callable(open))#函数可以调用就返回True

# 10.dir  查看数据类型的方法
# print(dir(__builtins__))#看着报错,,但其实不报错
# print(dir(int))
# print(dir(list))
# print(dir(0))#和int一样
# print(set(dir(list))-set(dir(tuple)))
# 11.
# num1=int(123)
# num2=int(12.3)#强制转换成int类型
# print(num1,num2)
# 12.取商/余
# print(divmod(7,3))
# 13.计算最小值
# print(min(1,2,3,4))
# print(min([5,6]))
# 13.计算最大值
# print(max(1,2,3,4))
# print(max([5,6]))

# 14.sum求和
# print(sum(1,2,3,4))#出错了,参数是序列,散列不行
# print(sum([5,6]))
# print(sum((1,2,3,4)))

# 以下的两个方式是一样的
# print(1+2)
# print(int(1).__add__(2))

# 15.round精确度
# print(round(3.1415926,2))#保留两位


# 16.pow()幂运算
# print(pow(2,3))
# print(2**3)


# 17.和数据结构相关的
# 1.reversed()顺序的反转
# l=[1,2,3,4]
# print(list(reversed(l)))#是生成了一个新的列表,没有改变原来的列表(以后能不用reversed就不用reversed,用reverse)
#
# # l.reverse()#在现在的列表的基础上修改了,修改的是原来的列表
# print(l)

# 2.slice切片
# 3.format()#除了格式化以外的作业
# print(format(‘test‘,‘<20‘))
# print(format(‘test‘,‘>40‘))
# print(format(‘test‘,‘^40‘))

# 4.bytes
s=你好
# sb=bytes(s,encoding=‘utf-8‘)
# print(sb)
# print(sb.decode(‘utf-8‘))

# sb2=bytearray(s,encoding=‘utf-8‘)
# sb2[0]=229 #修改   了解就好
# print(sb2.decode(‘utf-8‘))
# print(sb2)
# print(sb2[0])

# 5.repr
# print(repr(‘1234‘))
# print(repr(1234))
# print(‘name:%r‘%(‘egon‘))#你怎么传进去的就按什么格式打印出来了

# 6.set和frozenset(不可变的集合)就像list和tuple

# 7.enumerate
# l=[‘a‘,‘b‘]
# for i in enumerate(l):
#     print(i)
#
# for i ,j in enumerate(l):
#     print(i,j)

# 8.all和any
# print(all([1,2,3]))
# print(all([0,2,3]))#因为0是False
#
# print(any([1,2,3]))
# print(any([0,2,3]))

# 9.zip()
# l=[1,2,3]
# l2=[4,5,6,7,8]
# print(zip(l,l2))
# print(list(zip(l,l2)))
# l3={‘k‘:‘v‘}
# print(list(zip(l,l3)))

# 10.sort和sorted
# l=[1,3,5,-2,-6]
# l.sort()
# print(l)
# l2=[1,3,5,-2,-6]
# print(sorted(l2))
# print(sorted(l2,key=abs))
# print(sorted(l2,key=abs,reverse=True))#默认从小到大排序,修改为True,则从大到小排序


# 11.map():我要对我的列表当中的每一个值去做函数里面的操作
# l=[1,2,3,4,5]
# def pow2(x):
#     return x*x
# print(list(map(pow2,l)))


# 12.filter():从一个列表当中找到所有符合筛选条件的,在组成一个新列表
# def aaa(x):
#     return x%2==1
# ret=list(filter(aaa,[1,2,54,3,6,8,17,9]))
# print(ret)

二、匿名函数:也叫lambda表达式

1.匿名函数的核心:一些简单的需要用函数去解决的问题,匿名函数的函数体只有一行

2.参数可以有多个,用逗号隔开

3.返回值和正常的函数一样可以是任意的数据类型

 技术分享图片

请把下面的函数转换成匿名函数
def  add(x,y)
        return x+y
add()

结果:
sum1=lambda x,y:x+y
print(sum1(5,8))
dic = {‘k1‘:50,‘k2‘:80,‘k3‘:90}
# func= lambda k:dic[k]
# print(max(dic,key=func))
print(max(dic,key = lambda k:dic[k]))#上面两句就相当于下面一句

  

#map方法
l=[1,2,3,4]
# def func(x):
#     return x*x
# print(list(map(func,l)))

print(list(map(lambda x:x*x,l)))
l=[15,24,31,14]
# def func(x):
#         return x>20
# print(list(filter(func,l)))

print(list(filter(lambda x:x>20,l)))
技术分享图片
# 方法一
t1=((a),(b))
t2=((c),(d))
# print(list(zip(t1,t2)))
print(list(map(lambda t:{t[0],t[1]},zip(t1,t2))))

# 方法二
print(list([{i,j} for i,j in zip(t1,t2)]))

#方法三
func = lambda t1,t2:[{i,j} for i,j in zip(t1,t2)]
ret = func(t1,t2)
print(ret)
现有两个元组((‘a‘),(‘b‘)),((‘c‘),(‘d‘)), 请使用python中匿名函数生成列表[{‘a‘:‘c‘},{‘b‘:‘d‘}]

三、推导式

# li = []
# for i in range(1,101):
#     li.append(i)
# print(li)
#l1 = [python1期,python2期,python3期.....]
# l1 = []
# for i in range(1,12):
#     l1.append(‘python%s期‘ % i)
# print(l1)
#一行搞定,列表推导式:用列表推导式能够构建的任何列表,用别的都可以构建。
#一行,简单,感觉高端。但是,不易排错。
# li = [i for i in range(1,101)]
# print(li)
# l2 = [‘python%s期‘ % i for i in range(1,12)]
# print(l2)
#循环模式
#[经过加工的i for i in 可迭代对象]

l_obj = (python%s期 % i for i in range(1,12))
print(l_obj)
print(l_obj.__next__())
print(l_obj.__next__())
print(l_obj.__next__())

#列表推导式:一目了然,占内存。
#生成器表达式:不易看出,节省内容。

#循环模式
#[经过加工的i for i in 可迭代对象]
# l2 = [i*i for i in range(1,11)]
# print(l2)
#筛选模式
#[经过加工的i for i in 可迭代对象 if 条件 筛选]
# l3 = [i for i in range(1,101) if i % 3 == 0]
# print(l3)

# l3 = [i for i in range(31) if i % 3 == 0]
# print(l3)
#
# l3 = [i**2 for i in range(31) if i % 3 == 0]
# print(l3)

# names = [[‘Tom‘, ‘Billy‘, ‘Jefferson‘, ‘Andrew‘, ‘Wesley‘, ‘Steven‘, ‘Joe‘],
#          [‘Alice‘, ‘Jill‘, ‘Ana‘, ‘Wendy‘, ‘Jennifer‘, ‘Sherry‘, ‘Eva‘]]
#
# l4 = [name for i in names for name in i if name.count(‘e‘) == 2]
# print(l4)

# mcase = {‘a‘: 10, ‘b‘: 34}
# mcase_frequency = {mcase[k]: k for k in mcase}
# print(mcase_frequency)

squared = list({x**2 for x in [1, -1, 2]})
print(squared)

 

以上是关于python——内置函数匿名函数的主要内容,如果未能解决你的问题,请参考以下文章

python基础之匿名函数内置函数

python之内置函数匿名函数递归

python——内置函数匿名函数

python之内置函数,匿名函数

python函数 变量 递归 匿名函数 内置函数 文件操作

python基础---内置函数 和 匿名函数 知识点自查填空题