匿名函数
定义
函数名 = lambda 参数 :返回值
# 参数可以有多个,用逗号隔开
# 匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
# 返回值和正常的函数一样可以是任意数据类型
使用
num = lambda a:a*a
print(num(2))
# 4
# 取薪资最高的人的姓名
info = {
'Aason': 9999999,
'Jacob': 123,
'zark': 1000,
'berk': 33
}
print(max(info, key=lambda key: info[key]))
# Aason
内置函数
内置函数 | ||||
---|---|---|---|---|
abs() | dict() | help() | min() | setattr() |
all() | dir() | hex() | next() | slice() |
any() | divmod() | id() | object() | sorted() |
ascii() | enumerate() | input() | oct() | staticmethod() |
bin() | eval() | int() | open() | str() |
bool() | exec() | isinstance() | ord() | sum() |
bytearray() | filter() | issubclass() | pow() | super() |
bytes() | float() | iter() | print() | tuple() |
callable() | format() | len() | property() | type() |
chr() | frozenset() | list() | range() | vars() |
classmethod() | getattr() | locals() | repr() | zip() |
compile() | globals() | map() | reversed() | import () |
complex() | hasattr() | max() | round() | |
delattr() | hash() | memoryview() | set() |
map函数
描述
map()
会根据提供的函数对指定序列做映射。返回一个将 function
应用于 iterable
中每一项并输出其结果的迭代器
语法
map(function, iterable, ...)
# function -- 函数
# iterable -- 一个或多个序列
使用
l = [1, 2, 3, 4, 5]
def index(n):
return n * 10
print(list(map(index, l)))
# [10, 20, 30, 40, 50]
print(list(map(lambda x: x * 10, l)))
# [10, 20, 30, 40, 50]
zip函数
描述
将可迭代的对象作为参数,与对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
语法
zip([iterable, ...])
# iterable -- 一个或多个迭代器
使用
l1 = [1, 2, 3, ]
l2 = ['a', 'b', 'c', 5]
l3 = ('*', '**', (1, 2, 3))
res = zip(l1, l2, l3)
for i in res:
print(i)
# (1, 'a', '*')
# (2, 'b', '**')
# (3, 'c', (1, 2, 3))
filter函数
描述
filter()
函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True
或False
,最后将返回True
的元素放到新列表中。
语法
filter(function, iterable)
# function -- 判断函数
# iterable -- 可迭代对象
使用
def func(x):
return x % 2 == 0
l = [1, 2, 3, 4, 5, 6, 7]
res = filter(func, l)
for i in res:
print(i)
# 2
# 4
# 6
reduce函数
描述
reduce()
根据提供的函数,对可迭代对象进行函数运算,返回一个结果
语法
reduce(function, iterable[, initializer])
# function -- 函数,有两个参数
# iterable -- 可迭代对象
# initializer -- 可选,初始参数
使用
# Python3.x reduce() 已经被移到 functools 模块里
from functools import reduce
def func(x, y):
return x + y
l = [1, 2, 3, 4, 5]
res = reduce(func, l)
print(res)
# 15
res = reduce(lambda x, y: x + y, l, 100)
print(res)
# 115
abs函数
描述
返回数字绝对值或复数的模
语法
abs( x )
# x -- 数值表达式
使用
print(abs(-1))
# 1
print(abs(1))
# 1
all函数
描述
接受一个迭代器,如果迭代器(元组或列表)的所有元素都为真,那么返回True,否则返回False,元素除了是0、空、None
、False
以外都算True
注意:空元组、空列表返回值为True
,这里要特别注意
语法
all(iterable)
# iterable -- 元组或列表
使用
print(all([1, 2, 3, 4, 0]))
# False
print(all(['a', 'b', '', 'd']))
# False
print(all([]))
# True
print(all(()))
# True
any函数
描述
接受一个迭代器,如果迭代器里有一个元素为真,那么返回True
,否则返回False
,元素除了是 0、空、None
、False
外都算 True
语法
any(iterable)
# iterable -- 元组或列表
使用
print(any([1, 2, 3, 4, 0]))
# True
print(any(['a', 'b', '', 'd']))
# True
print(any([]))
# False
print(any(()))
# False
bin、oct、hex函数
描述
bin()
将十进制转换为二进制
oct()
将十进制转换为八进制
hex()
将十进制转换为十六进制
语法
bin(x)
oct(x)
hex(x)
# x -- int
使用
print(bin(1))
# 0b1
print(oct(1))
# 0o1
print(hex(1))
# 0x1
bytes函数
描述
将一个字符串转换成字节类型
语法
class bytes([source[, encoding[, errors]]])
# 如果 source 为整数,则返回一个长度为 source 的初始化数组;
# 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
# 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
# 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
# 如果没有输入任何参数,默认就是初始化数组为0个元素。
使用
s = '你好啊 hello world!'
print(s.encode('utf8'))
# b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a hello world!'
print(bytes(s, 'utf8'))
# b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x95\x8a hello world!'
'''针对编码解码 可以使用关键字encode与decode 也可以使用bytes和str'''
s1 = '天黑了 请闭眼!!!'
# 编码
res = bytes(s1, 'utf8')
print(res)
# b'\xe5\xa4\xa9\xe9\xbb\x91\xe4\xba\x86 \xe8\xaf\xb7\xe9\x97\xad\xe7\x9c\xbc!!!'
# 解码
res1 = str(res, 'utf8')
print(res1)
# 天黑了 请闭眼!!!
callable函数
描述
callable()
函数用于检查一个对象是否是可调用的。如果返回 True
,object
仍然可能调用失败;但如果返回 False
,调用对象object
绝对不会成功。对于函数、方法、lambda
函式、 类以及实现了 __call__
方法的类实例, 它都返回True
语法
callable(object)
# object -- 对象
使用
name = 'kevin'
def index(): pass
print(callable(name))
# False
print(callable(index))
# True
#创建一个带有__call__方法的类
class Dogs:
def __call__(self):
return 0
print(callable(Dogs))
# True
chr、ord函数
描述
chr()
用一个范围在range
(256)内的(就是0~255)整数作参数,返回一个对应的字符。
ord()
查看某个ASCII
对应的十进制数
语法
chr(i)
# i -- 可以是10进制也可以是16进制的形式的数字
ord(c)
# c -- 字符
使用
print(chr(65))
# 'A'
print(ord('A'))
# 65
dir函数
描述
dir()
查看对象的内置属性, 访问的是对象中的__dir__()
方法,函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__()
,该方法将被调用,如果参数不包含__dir__()
,该方法将最大限度地收集参数信息
语法
dir(object)
# object -- 对象、变量、类型
使用
print(dir(123))
print(dir('kevin'))
divmod函数
描述
divmod()
函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
例如,可以使用在网站的分页制作上
语法
divmod(a, b)
# a -- 被除的数字
# b -- 除数
使用
print(divmod(250, 25))
# (10, 0)
print(divmod(249, 25))
# (9, 24) # 一个参数是整数部分 第二个是余数部分
enumerate函数
描述
enumerate()
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。返回一个可以枚举的对象,该对象的next()
方法将返回一个元组。enumerate
在字典上是枚举、列举的意思。
语法
enumerate(sequence, [start=0])
# sequence -- 一个序列、迭代器或其他支持迭代对象
# start=0 -- 控制起始位置,默认是0
使用
name_list = ['jason', 'kevin', 'oscar', 'tony']
for i in enumerate(name_list, start=1):
print(i)
# (1, 'jason')
# (2, 'kevin')
# (3, 'oscar')
# (4, 'tony')
eval、exec函数
描述
eval()
将字符串str 当成有效的表达式来求值并返回计算结果取出字符串中内容
exec()
执行储存在字符串或文件中的Python语句,相比于eval
,exec
可以执行更复杂的Python
代码
语法
eval(expression[, globals[, locals]])
# expression -- 表达式
# globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象
# locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象
exec(object, globals, locals)
# object-- 要执行的表达式。
# globals -- 可选。包含全局参数的字典。
# locals -- 可选。包含局部参数的字典。
使用
s = "print(Hello World)"
exec(s)
isinstance函数
描述
isinstance()
函数来判断一个对象是否是一个已知的类型,类似 type()
语法
isinstance(object, classinfo)
# object -- 实例对象
# classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组
使用
print(isinstance('kevin', str))
# True
print(isinstance('kevin', int))
# False
pow函数
描述
pow(x,y)
方法返回x
的y
次方的值,等价于x**y
。函数是计算x
的y
次方,如果z
在存在,则再对结果进行取模,其结果等效于pow(x,y) %z
语法
pow(x, y[, z])
# x -- 数值表达式
# y -- 数值表达式
# z -- 数值表达式
使用
print(pow(10, 2))
# 100
print(pow(10, 2, 3))
# 1 (10**2)%3
round函数
描述
round()
函数返回浮点数x
的四舍五入值。
语法
round( x [, n] )
# x -- 数值表达式
# n -- 代表小数点后保留几位
使用
print(round(1.5))
# 2
print(round(1.4))
# 1
print(round(1.5444, 2))
# 1.54