Day 3-3 内置方法
常用内置函数方法:
min,max
1 li = [1, 2, 3, 6, 9, 5, 10, 26] 2 print('li的最小值是:', min(li)) # 取最小值 3 print('li的最大值是:', max(li)) # 取最大值 4 #输出如下: 5 # li的最小值是: 1 6 # li的最大值是: 26
bool() 判断是True还是False
bool(0) #False bool(-1) #True bool(1) #True bool(False) #False bool(None) #False
all,any 判断一个可迭代的参数里的元素是否为True或False
# all 判断一个可迭代参数的元素是否都是True,如果有一个非True,就返回False li = [-1, 2, 9] tup = (1, 2, 4, 8, 0) empty_list = [] print(all(li)) # True print(all(tup)) # False print(all(empty_list)) # 需要特别注意的是,在python中.bool([])是返回False,但是all([]),返回的是True # True # any 只要有一个元素是True就返回True print(any(tup)) # True
dir:打印当前程序所有的变量名称.
print(dir()) # 输出如下: # ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'empty_list', 'li', 'tup']
语法
sorted 语法:
sorted(iterable[, cmp[, key[, reverse]]])
参数说明:
- iterable -- 可迭代对象。
- cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。
students = [('john', 'A', 18), ('jane', 'B', 12), ('dave', 'B', 20)] print(sorted(students,key=lambda x:x[2],reverse=True)) //按照年龄降序排列 --------------------------------------------------
[('jane', 'B', 12), ('john', 'A', 18), ('dave', 'B', 20)]
eval():用来执行一个字符串表达式,并返回表达式的值。
s = '2+8*9' s1 = eval(s) print(s1) # 输出如下: # 74
exec():方法和eval一样.只是exec()方法可以执行多行代码.
1 code = ''' 2 if 2 > 5: 3 print('2比5大') 4 else: 5 print('2没有5大') 6 7 ''' 8 9 10 exec(code) 11 #输出如下: 12 # 2没有5大 13 14 #注意,如果用eval(code) 来执行这段代码,会报错.
eval()和exec()的区别:
1.eval()执行代码时,只能执行单行.exec()可以执行多行
2.eval()可以获取返回值,exec()不能获取.看下面的例子.
1 res = eval('9+3*7') 2 res1 = exec('9+3*7') 3 print('res', res, res1) 4 #输出如下: 5 # res 30 None res1 返回了None
ord(),chr()
1 print(ord('a')) #返回字符串在ASCII码中的十进制数 2 print(chr(97)) #返回十进制数在ASCII码中对应的字母 3 #输出: 4 # 97 5 # a
sum():求和
1 li = [9,89, 84, 23, 34, 4343, 232] 2 print(sum(li)) 3 # 4814
map():
语法
map() 函数语法:
map(function, iterable, ...)
参数
-
function -- 函数,有两个参数
-
iterable -- 一个或多个序列
1 print(list(map(lambda x, y: x * y,[9,5,6,4,3], [98,34,24,56]))) 2 # [882, 170, 144, 224]
filter()
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法
以下是 filter() 方法的语法:
filter(function, iterable)
参数
- function -- 判断函数。
- iterable -- 可迭代对象。
返回值
返回列表。
1 print(list(filter(lambda x: x > 4, [1,2,3,4,5,6,7,8,9]))) 2 # [5, 6, 7, 8, 9]
reduce():在python3中需要导入functools才可以使用.
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
语法
reduce() 函数语法:
reduce(function, iterable[, initializer])
参数
- function -- 函数,有两个参数
- iterable -- 可迭代对象
- initializer -- 可选,初始参数.相当于替换迭代对象中的第一个元素值.
返回值
返回函数计算结果。
1 # 求1+2+3+.....+100的值 2 import functools 3 print(functools.reduce(lambda x,y:x+y,list(range(101)))) 4 #5050
# 使用初始参数 import functools print(functools.reduce(lambda x,y:x+y,[1,3,5,7,9],5)) #30 # 相当于把列表的中1替换成5.
callable():判断是否可以被调用,可以被调用返回True,反之返回False
1 def calc(): 2 pass 3 4 5 a = 5 6 print(callable(calc)) 7 print(callable(a)) 8 #True 9 #False
frozenset():把一个集合变成不可变的.
1 set = {1,2,3,4,5,6,7} 2 set.discard(6) 3 print(set) 4 set = frozenset(set) 5 set.discard(6) # 这一行会报错.不可变后,不能添加删除.
locals :打印当前作用域中的变量.
def calc(): x = 9 y = 8 print(locals()) calc() # {'y': 8, 'x': 9} 以字典的形式返回.
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
语法
zip 语法:
zip([iterable, ...])
参数说明:
- iterabl -- 一个或多个迭代器;
返回值
返回元组列表.
1 l = [1,2,3,4,5,6] 2 l1 = ['a','b','c'] 3 print(list(zip(l, l1))) 4 # [(1, 'a'), (2, 'b'), (3, 'c')]