好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Python_学习之内置函数与匿名函数

目录

 三元表达式

列表推导式

生成器推导式

匿名函数

1、交互相关

2、数据类型相关

3、数字相关

4、字符串执行代码相关

5、最常用的 

三元表达式

 
a if x>1 else b 

列表推导式

 
[i**2 for i in range(10)] 

生成器推导式

 
(i**2 for i in range(10))
 

匿名函数 为了简洁代码而设计的一种一行代码组成的函数写法

语法:函数名[可省略] = lambda 参数1,参数2: 返回值

 def add(a,b):
   return a+b
# 匿名函数表示
lambda a,b:a+b
 

Python的内置函数有很多,随着版本的升级会更多,本文主要介绍常用的

1、交互相关 input() 输入

 args = input("请输入你的选择:") 

print()输出

 # 打印进度条
import time
for i in range(0,101,2):  
    time.sleep(0.1)
    char_num = i//2      #打印多少个'*'
    per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num)
  print(per_str,end='', flush=Tru
 

2、数据类型相关 type(obj)返回对象的数据类型

id(obj)返回对象的内存地址

reversed(序列)返回序列顺序反转的生成器对象,注意与list的reverse() 是直接改变原对象的顺序的区别

3、数字相关 abs() 返回数字的绝对值

divmod(除数,被除数) 返回商和余数

divmod(10,3) --->(3,1) bin()将整数转化为二进制

oct() 将整数转化为8进制

hex()将整数转化为16进制

chr(i)返回整数i对应的ascii字符

min(*args,key=None) 返回序列中的最小值,key可以是一个方法

 
min(1,2,3,0) ---> 0
li = [1,3,-2]
min(li, key=lambda a: a * a) --->1
 

max(*args,key=None) 返回序列中的最大值,用法类似min

sum(iterable,start)求和,start为求和后,再相加的参数,默认为0

round(x,n)返回x四舍五入的值,n为保留小数几位

range(num)返回包含[0,num-1]序列的可迭代对象range

4、字符串执行代码相关 eval() 将字符串类型的数学运算代码执行并返回结果

 
li = [3, 2, 100, 999, 213, 1111, 31121, 333]
print(eval("-".join(str(i) for i in li)))
 

exec()将字符串类型的代码仅仅执行,没有返回值

 
code_string="""
import time
now = time.time
"""
exec(code_string)
 

5、最常用的 zip(iterable) 拉链算法

 数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

# 我们可以使用 list() 转换来输出列表。

# 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表

a = ["id", "phone_number", "city"]
b = [11, 18638720088, "北京"]
c = [8732623, 12345678910, "上海", "外滩"]
ret = zip(a, b)
print(list(ret))  # [('id', 11), ('phone_number', 18638720088), ('city', '北京')]

print(list(zip(a, c)))  # [('id', 8732623), ('phone_number', 12345678910), ('city', '上海')]

# 还原
x,y = zip(*zip(a,b))
sorted(iterable,key=None,reverse=False)为序列按方式key【函数名】默认升序排序,返回新的列表

li = [1,3,5,-2]
print(sorted(li, key=abs))  # [1,-2,3,5]
filter(function or None,iterable) 每个元素按函数执行,过滤不符合的元素,返回合格的可迭代对象

# 去掉列表中的空及字符串
list(filter(None,li))
# 过滤列表中是2的倍数的数
list(filter(lambda x:x%2==1,li))
map(function,iterable) 每个元素执行一遍指定的函数,返回每个元素组成结果的可迭代对象

list(map(lambda x:x*x li))
 

查看更多关于Python_学习之内置函数与匿名函数的详细内容...

  阅读:37次