Python常用的内置函数

  •  filter函数:
filter函数的功能:用for循环对一个列表元素进行筛选
格式:filter(功能函数,参数)
注意:filter返回值是一个object对象,需要用list转换成一个列表

不用filter函数时所用的代码:
i = ['alex','alex1_sb','alex2_sb','alex3_sb','alex4_sb','alex5_sb','alex5_sb']
def sb_end(x):
    return x.endswith('sb')
def sb_guolv(func,num):
    a = []
    for i in num:
        if  not  func(i):
            a.append(i)
    return a
print(sb_guolv(sb_end,i))
print(list(sb_guolv(lambda x:x.endswith('sb'),i)))

以上代码用filter函数简化代替:

i = ['alex','alex1_sb','alex2_sb','alex3_sb','alex4_sb','alex5_sb','alex5_sb']
print(list(filter(lambda x:not x.endswith('sb'),i)))
  • map函数

    map函数的功能:一个列表的每个元素进行自增

    格式:map(功能,参数)
注意:map返回值是一个object对象,需要用list转换成一个列表

不用map函数时的代码:

i = [1,2,3,4,5,6,7,8,9,10]
def add_num(x):
     return x+1
def map_test(func,num):
     n = []
     for j in num:
         b = func(j)
         n.append(b)
print(a)

以上代码用map函数代替:

print(list(map(lambda x:x+1,[1,2,23,4,5,6])))


  •  reduce函数

功能:对一个列表的所有元素进行合并操作。

格式:reduce(功能函数,参数)

 

不用reduce函数的代码:

num = [1,2,3,100]
def reduce_test(func,x,y = None):
     if y == None:
         a = x.pop(0)
     else:
         a = y
     for i in x:
         a = func(a,i)
     return a
 print(reduce_test(lambda x,y:x*y,num,100))
用reduce代替:
num = [1,2,3,100]
from functools import reduce
print(reduce(lambda x,y:x*y,num))


  •  其它一些比较简单的内置函数:
###########编码:
# print(bytes('你好!',encoding='utf-8'))
# print(b'xe4xbdxa0xe5xa5xbdxefxbcx81'.decode('utf-8'))
# print(bytes('你好骚啊!',encoding='gbk'))
# print('你好骚啊!'.encode('gbk'))
# print(b'xc4xe3xbaxc3xc9xa7xb0xa1xa3xa1'.decode('gbk'))

##########ASCII编码表:
# print(chr(96))
#########反过来:
# print(ord('a'))

##########dir:打印某一个对象的所有方法:
# print(dir(dir))


########divmod:取商取余,进行分页操作:
# print(divmod(100,3))


#######eval:提取一个字符串的字典;将一个字符串里的运算进行提取并计算出结果:
# name1 = "{'alex':'123'},{'alex1':'123'}"
# print(eval(name1))
# name2 = '1+(2+3*5/5+2)-2**2'
# print(eval(name2))


#########hash:哈希编译;每一次的计算结果都是随机的
# name = 'name'
# print(hash(name))

#########10进制转换:
# print(bin(12)) #10进制转2进制
# print(oct(12)) #10进制转8进制
# print(hex(12)) #10进制转16进制

######    isinstance:判断一个数据是否属于某一个数据类型
# print(isinstance(123,int))
# print(isinstance('123',int))

##############max,min:求最大最小值:
# name = [1,2,3,4,5,6,-2,100]
# print(max(name))
# print(min(name))

############# zip(拉链):将两个列表或者字典转化成一一对应的关系。
# print(dict(zip([1,2,3,4,5,6],['alex','alex','alex','alex','alex','alex'])))
# a = {1: 'alex', 2: 'alex', 3: 'alex', 4: 'alex', 5: 'alex', 6: 'alex'}
# print(list(zip(a.keys(),a.values())))


# name = {'alex1':10,'alex2':11,'alex3':15,'alex4':-100,'alex5':100}
# # a = zip(name.values(),name.keys())
# # print(list(a))
# print(max(zip(name.values(),name.keys())))


##############  max函数的终极用法: #####################
# 需求:用max函数取出这个列表中年龄最大的一个值
# name = [
#     {'name':'alex1','age':18},
#     {'name':'alex2','age':20},
#     {'name':'alex3','age':21},
#     {'name':'alex4','age':100},
#     {'name':'alex5','age':1000}
# ]
# l = []
# for i in name:
#     l.append(i['age'])
# print(max(l))

# print(max(name,key = lambda list:list['age']))



#############pow:
# print(pow(2,3))    ####相当于:2**3
# print(pow(2,3,2))  ####相当于:2**3%2 2的三次方除以2的余数

##############  reversed():反转函数:
# l = [1,2,3,4,5,6,7,8,9]
# print(list(reversed(l)))


##############  slice:切片,相当于[a:b]
# a = 'hello world'
# s = slice(3,8)
# print(a[s])
# print(a[3:8])


#############   sorted():排序
# name = [
#     {'name':'alex1','age':18},
#     {'name':'alex2','age':20},
#     {'name':'alex3','age':21},
#     {'name':'alex4','age':100},
#     {'name':'alex5','age':1000}
# ]
# print(sorted(name,key=lambda dic:dic['age']))
# a = [9,8,7,6,5,4,3,2,1,0]  #只能排同数据类型
# print(sorted(a))
# # print(sorted(name))  #这个格式是错误的
 
原文地址:https://www.cnblogs.com/maoxinjueluo/p/12537332.html