(十六)Python学习之内置函数

(十六)Python学习之内置函数

一、三个重要的内置函数
1.map函数
(1)描述:map函数会根据提供的函数对指定序列做映射;
(2)参数说明:map(function, iterable, …)

function:函数
iterable:一个或多个序列

(3)函数说明:function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表(Python 2.x 返回列表,Python 3.x 返回迭代器);
(4)实例:对列表的数据进行乘方操作;

L = [1, 2, 3, 4, 5]
L1 = map(lambda x: x**2, L)
print(L1)
L2 = list(L1)
print(L2)

在这里插入图片描述
2.filter函数
(1)描述:filter函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表;
(2)参数说明:filter(function, iterable)

function:判断函数
iterable:可迭代对象

(3)函数说明:该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中(Python 2.x 返回列表,Python 3.x 返回迭代器);
(4)实例:过滤出列表中的所有奇数;

def is_odd(n):
    return n % 2 == 1


L1 = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(L1)
L2 = list(L1)
print(L2)

在这里插入图片描述
3.reduce函数
(1)含义:reduce函数会对参数序列中元素进行累积;
(2)参数说明:reduce(function, iterable[, initializer])

function:函数,有两个参数
iterable:可迭代对象
initializer:可选,初始参数

(3)函数说明:函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数function(有两个参数)先对集合中的第1、2个元素进行操作,得到的结果再与第三个数据用function 函数运算,最后得到一个结果;
(4)实例:对列表的数据进行累加操作;

from functools import reduce

L = [1, 2, 3, 4, 5]
L1 = reduce(lambda x, y: x+y, L)
print(L1)

在这里插入图片描述
注意:在Python3中,reduce()函数已经被从全局名字空间里移除了,它现在被放置在functools模块里,如果想要使用它,则需要通过引入functools模块来调用reduce()函数;

二、其他内置函数
1.数学运算

扫描二维码关注公众号,回复: 5600790 查看本文章

abs:求数值的绝对值;
divmod:返回两个数值的商和余数;
max:返回可迭代对象的元素中的最大值或者所有参数的最大值;
min:返回可迭代对象的元素中的最小值或者所有参数的最小值;
pow:取两个值的幂运算值,或取两个值的幂运算值再与第三个值取模;
round:对浮点数进行四舍五入求值;
sum:对元素类型是数值的可迭代对象中的每个元素求和;

print(abs(-9))
print(divmod(99, 4))
print(max([2, 6, 99, 17]), min([2, 6, 99, 17]))
print(max('aaa', 'b', '233'), min('aaa', 'b', '233'))
print(pow(2, 3), pow(2, 3, 5))
print(round(3.1415))
print(sum([1, 2, 3, 4, 5]))

在这里插入图片描述
2.类型转换

bool:根据传入的参数的逻辑值创建一个新的布尔值;
int:根据传入的参数创建一个新的整数;
float:根据传入的参数创建一个新的浮点数;
complex:根据传入参数创建一个新的复数;

print(complex('1+2j'))
print(complex(1, 2))

在这里插入图片描述

str:返回一个对象的字符串表现形式;
bytearray:根据传入的参数创建一个新的字节数组;
bytes:根据传入的参数创建一个新的不可变字节数组;
memoryview:根据传入的参数创建一个新的内存查看对象;
ord:返回Unicode字符对应的整数;
chr:返回整数所对应的Unicode字符;
bin:将整数转换成2进制字符串;
oct:将整数转化成8进制数字符串;
hex:将整数转换成16进制字符串;
tuple:根据传入的参数创建一个新的元组;
list:根据传入的参数创建一个新的列表;
dict:根据传入的参数创建一个新的字典;
set:根据传入的参数创建一个新的集合;
frozenset:根据传入的参数创建一个新的不可变集合;
enumerate:根据可迭代对象创建枚举对象;

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons)))

在这里插入图片描述

range:根据传入的参数创建一个新的range对象;
iter:根据传入的参数创建一个新的可迭代对象;
slice:根据传入的参数创建一个新的切片对象;

s = slice(2, 5, None)
L = "abcdefg"
print(L[s])

在这里插入图片描述

super:根据传入的参数创建一个新的子类和父类关系的代理对象;
object:创建一个新的object对象;

3.序列操作

all:判断可迭代对象的每个元素是否都为True值;
any:判断可迭代对象的元素是否有为True值的元素;

print(all([1, 2, 3, 4]))
print(all([1, 2, 3, 0]))
print(any([1, 2, 3, 4]))
print(any([0, 0, 0, 0]))

在这里插入图片描述

filter:使用指定方法过滤可迭代对象的元素;
map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象;
next:返回可迭代对象中的下一个元素值;
reversed:反转序列生成新的可迭代对象;
sorted:对可迭代对象进行排序,返回一个新的列表;
zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器;

L1 = ['b', 'c', 'a', 'd', 'e']
L2 = '12435'
print(L1)
print(L2)
L1 = sorted(L1)
L2 = sorted(L2)
print(L1)
print(L2)
print(list(zip(L2, L1)))

在这里插入图片描述
4.对象操作

help:返回对象的帮助信息;
dir:返回对象或者当前作用域内的属性列表;
id:返回对象的唯一标识符;
hash:获取对象的哈希值;
type:返回对象的类型,或者根据传入的参数创建一个新的类型;
len:返回对象的长度;
ascii:返回对象的可打印表字符串表现方式;
format:格式化显示值;
vars:返回当前作用域内的局部变量和其值组成的字典(有参数),或者返回对象的属性列表(没有参数);

5.反射操作

__ import__:动态导入模块(导入字符串类型的模块名);

index = __import__('hello')
index.sayHello()

在这里插入图片描述

isinstance:判断对象是否是类或者类型元组中任意类元素的实例;
issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类;
hasattr:检查对象是否含有属性;
getattr:获取对象的属性值;
setattr:设置对象的属性值;
delattr:删除对象的属性;
callable:检测对象是否可被调用;

6.变量操作

globals:返回当前作用域内的全局变量和其值组成的字典;
locals:返回当前作用域内的局部变量和其值组成的字典;

7.交互操作

print:向标准输出对象打印输出;
input:读取用户输入值;

8.文件操作

open:使用指定的模式和编码打开文件,返回文件读写对象;

9.编译执行

compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值;
eval:执行动态表达式求值;先将字符串中的数据和数据结构提取出来,再将字符串中的数学运算进行一次;

print(eval('1+2+3+4'))

在这里插入图片描述
exec:执行动态语句块;
repr:返回一个对象的字符串表现形式(给解释器);

10.装饰器

property:标示属性的装饰器;
classmethod:标示方法为类方法的装饰器;
staticmethod:标示方法为静态方法的装饰器。

猜你喜欢

转载自blog.csdn.net/weixin_38936626/article/details/86651337