python(6)map、filter、reduce和内置函数

def add(x)return x + 1
def test(func,array):
    ret = []
    for i in array:
        res = func(i)
        ret.append(res)
    return ret
arr = [1,2,3,4]
print(test(lambda x: x * 100, arr))
print(test(lambda x: x ** 2, arr))
print(test(add, arr))

map(函数,迭代器)
map函数:将迭代器里的元素执行函数后的结果,以迭代器的内存地址形式返回
print(list(map(lambda x : x ** 2, arr)))
#返回迭代器地址,输出需转化一下  

#############################################################################
filter函数:
filter(函数,迭代器)
筛选出迭代器中满足函数(bool值)的元素,以迭代器的内存地址形式返回
name = ["Q_sb","H_sb","QH"]
print(list(filter(lambda x : (x.endswith("sb") == False),name)))
#['QH']

reduce函数,将一个迭代器合并成一个结果
def reduce_test(func, array, init = None):	#可添加初始值
    if init != None:
        res = init
        for num in array:
            res = func(res, num)
    else:
        res = array.pop(0)
        for num in array:
            res = func(res, num)
    return res

arr = [1,20,100,50]
print(reduce_test(lambda x,y:x + y, arr))
print(reduce_test(lambda x,y:x + y, arr, 5))
from functools import reduce
print(reduce(lambda x,y:x + y, arr))
print(reduce(lambda x,y:x + y, arr, 5))

############################################################################
内置函数:
abs(-1)			#绝对值

all([1,2,0])	#可迭代对象,元素bool值,一假全假返回False,其余返回True,为空返回True

any([1,2,0])	#可迭代对象,元素bool值,一真全真返回True,其余返回False

bin(3)			#二进制

bool("")		#bool值

bytearray()
bytes()
name = "你好"
bytes(name, encoding = 'utf-8')	#b'\xe4\xbd\xa0\xe5\xa5\xbd'	二进制编码
print(bytes(name, encoding = 'utf-8').decode('utf-8'))	#解码,用那种格式编码,就用那种格式解码

ascii()
callable()
chr(97)			#ascii表转字符
ord("a")		#字符转ascii表
classmethod()
complex()
delattr()
dict()
dir(all)		#打印某一对象下面所有的方法
divmod(10,3)	#(3,1)计算出(商,余数)
enumerate()

eval(str)		
1、把字符串中的数据结构提取传来
	dic_str = str({"name": "Q", "age": 18})
	print(dic_str)
	dic = eval(dic_str)
	print(dic["name"])	#Q
2、把字符串中的表达式进行运算
	express = "1+3*(4/2) -100"
	eval(express)	#-93.0

exec()
filter()
float()
format()
frozenset()
getattr()
globals()
hasattr()

hash()	#可hash的数据类型即不可变数类型,不可hash的数据类型即可变数据类型。在程序中变量会生成一个hash值,若变量被重新复制,hash值也会变化
help(str)	#打印详细信息

hex()	#十进制转换为十六进制
oct()	#十进制转换为八进制
id()	#内存地址

input()
int()

isinstance()	#判断属性
print(isinstance(1, int))	#True

issubclass()
iter()
len()

print(globals())	#输出全局变量
print(locals())		#输出局部变量
print(__file__)		#输出该程序的文件路径

list()
map()
max()				#最大值
min()				#最小值
l = [1,12,444,0,4554,67]
print(max(l),min(l))	#4554 0

zip()			#将两个序列一一对应组成元组,若两个序列不一样长,取最短的那个序列的长度
print(list(zip(("a","b","c"),(1,2,3,4))))#[('a', 1), ('b', 2), ('c', 3)]

dic = {"a" : 1,"b" : 2,"c": 3}
print(list(zip(dic.keys(),dic.values())))#[('a', 1), ('b', 2), ('c', 3)]

############################
#比较字典的values且输出key和value
print(max(list(zip(dic.values(), dic.keys()))))		#(3, 'c')

li = [
    {"name": "q", "age": 18},
    {"name": "q", "age": 14},
    {"name": "q", "age": 55},
    {"name": "q", "age": 28}
    ]

print(max(li,key = lambda dic:dic["age"]))	#{'name': 'q', 'age': 18}

memoryview()
next()
object()
open()
pow()
	print(pow(3,3))		#3**3
	print(pow(3,3,2))	##**3%2
print()
property()
range()
repr()
reversed()
round()		#四舍五入
set()
setattr()

slice()		#切片范围
	s = "fgkggkfgkgk"
	sl = slice(2,7,3)
	print(s[sl])
	sl.start
	sl.end
	sl.step

sorted()
	li = [
    {"name": "q", "age": 18},
    {"name": "q", "age": 14},
    {"name": "q", "age": 55},
    {"name": "q", "age": 28}
    ]
    print(sorted(li, key = lambda dic : dic["age"], reverse = False))	#按照年龄排序(从小到大)

staticmethod()
str()
sum()
super()
tuple()
type()		#查看数据类型
vars()		
	print(vars())	#输出local变量,字典形式
	print(vars(int)	#输出int类型的所有方法,字典形式
zip()
__import__()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值