abs()
返回数字的绝对值
map
根据函数对指定序列做映射map()函数接收两个参数,一个是函数,一个是可迭代对象,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。返回值: Python2 返回列表 Python3 返回迭代器例子1:def mul(x): return x*xn=[1,2,3,4,5]res=list(map(mul,n))print(res) #[1, 4, 9, 16, 25]例子2:abs() 返回数字的绝对值ret = map(abs,[-1,-5,6,-7])print(list(ret))# [1, 5, 6, 7]
filter
filter()函数接收一个函数 f(函数)和一个list(可迭代对象),这个函数 f的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。def is_odd(x): return x % 2 == 1v=list(filter(is_odd, [1, 4, 6, 7, 9, 12, 17]))print(v) #[1, 7, 9, 17]
map与filter总结
# filter 与 map 总结# 参数: 都是一个函数名 + 可迭代对象# 返回值: 都是返回可迭代对象# 区别:# filter 是做筛选的,结果还是原来就在可迭代对象中的项# map 是对可迭代对象中每一项做操作的,结果不一定是原来就在可迭代对象中的项
isinstancetype
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。isinstance() 与 type() 区别:type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。如果要判断两个类型是否相同推荐使用 isinstance()。# 例一a = 2print(isinstance(a,int)) # Trueprint(isinstance(a,str)) # False# type() 与 isinstance() 区别class A: passclass B(A): passprint("isinstance",isinstance(A(),A)) # isinstance Trueprint("type",type(A()) == A) # type Trueprint('isinstance',isinstance(B(),A) ) # isinstance Trueprint('type',type(B()) == A) # type Falsezip 拉链函数
# zip 拉链函数,# 将对象中对应的元素打包成一个个元组,# 然后返回由这些元组组成的列表迭代器。# 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。print(list(zip([0,1,3],[5,6,7],['a','b'])))# [(0, 5, 'a'), (1, 6, 'b')]
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。>>>a = [1,2,3]>>> b = [4,5,6]>>> c = [4,5,6,7,8]>>> zipped = zip(a,b) # 打包为元组的列表[(1, 4), (2, 5), (3, 6)]>>> zip(a,c) # 元素个数与最短的列表一致[(1, 4), (2, 5), (3, 6)]>>> zip(*zipped) # 与 zip 相反,可理解为解压,返回二维矩阵式[(1, 2, 3), (4, 5, 6)]
reduce
'''reduce() 函数reduce() 函数会对参数序列中元素进行累积函数将一个数据集合(链表、元组等)中的所有数据进行下列操作'''注意:Python3已经将reduce() 函数从全局名字空间里移除了,它现在被放置在 fucntools 模块里,如果想要使用它,则需要通过引入 functools 模块来调用 reduce() 函数:from functools import reducedef add(x,y): return x + yprint(reduce(add,[1,2,3,4,5]))# 15print(reduce(lambda x, y: x+y, [1,2,3,4,5])) # 15print(reduce(add,range(1,101)))# 5050



