函数风云序列之内置函数

在这里我将常用的内置函数中可以使用外部函数的和必须使用外部函数的内置函数以及常用的函数记录了一下

一.函数内部可以使用外部函数内置函数:

1.min(iterable,key = func)   /  max(iterable,key = func)  求最小值 / 最大值   在后面括号里可以添加一个函数地址作为参数,可以将前面的可迭代的中的数据作为函数的参数进行处理,是的min利用函数的返回值来进行比较大小,从而找出最小值 / 最大值

#1.求最小值
def func(n):
     return n%6
print(min(2,3,4,5,7,key = func))


#2.求最大值
ret = [{'name1':10},{'name2':500}]
def func1(dic):
     for i in dic:
         return dic[i]

print(max(ret,key = func1))

2.sorted(iterable,key = func,reverse = True)  将前面的元素当做参数一个个的传给后面的参数,通过函数的返回值进行比较大小来进行排序,后面的reverse= True是的该函数默认按照从小到大来排序,只需要改为reverse = False,就改为从大到小排序

#sorted(iterable,key,reverse) 和 .sort()对比 生成一个新列表在不改变原#列表的情况下]
#按照商品的价格从高到低排列
l = [{'name':'电脑','price':1999},{'name':'鼠标','price':2000}]
def func(dic):
return dic['price']
print(sorted(l,key =func,reverse = True ))

 

 

二.函数内部必须使用外部函数的内置函数:

1.map(func,iterable)  将后面的参数中的每一个元素当做参数一个个的传给前面的函数进行相同的操作,然后返回进行了相同操作的元素,再通过map返回出来,map函数返回的是一个迭代器,故需要for循环或者数据类型的强制转换进行取值

#map(func,iterable)  当一个迭代器的中的每一个元素都需要去做同一个操作并且返回一个结果组成一个新列表的时候就用map()
#1.
def func():
     return i * '*'
ret = map(func,[1,2,3])
print(ret)
for i in ret:
     print(i)

2.filter(func,iterable)  将后面的参数中的每一个元素当做参数一个一个的传给前面的函数,在函数内进行筛选,是函数的返回值为True的参数返还回来,组成新的数据.filter()函数返回的是一个迭代器,故需要使用for循环或者数据类型的强制转换进行取值

#1
def func(i):
     if i %2 != 0:
         return True
l = [1,4,2,6,7,8,9,10,17]
for i in filter(func,l):    #把迭代器l的每一个元素都当做参数传给函数func(),
                                 #如果fnunc()返回的值为True,则返回元素
     print(i)

#2
l = ['sjkdhf',[1,2,3],{},()]
def func1(a):
     if type(a) != dict:
         return True
ret = filter(func1,l)
for i in ret:
     print(i)

 

三.相对常用的内置函数

1.sum(可迭代的数字相关的数据类型,数字)           对后面的可迭代的内的元素进行求和,后面的数字是决定的从几开始加的,默认是从0开始的

lst = [1,2,3,4,5,6]
ret = sum(lst)
print(ret)    #结果是21
lst = [1,2,3,4,5,6]
ret = sum(lst,3)
print(ret)    #结果是24

2.zip()  拉链函数   返回一个迭代器,可以将后面参数中的元素一一对应形成一个新的元组

a = (1,2,3)
b = ('a','b','c')
ret = zip(a,b)
print(ret)
for i in ret:
    print(i)

3.enumerate()   枚举函数  在for循环中给列表中的每个元素加一个标号,标号默认从第一个元素的索引开始的

for i in enumerate(b,1):     #后面的1是指第一个标号是从1开始
    print(i)
结果为:
(1, 'a')
(2, 'b')
(3, 'c')

4.len()     求一个数据类型的长度,也可以理解为该数据中元素的个数

b = ('a','b','c')
print(len(b))    #结果是3

5.ord() ​   字符按照ASCII码转为数字 /  chr()    数字按照ASCII码转为字符串​​​​​ 

  1.其中字母A-Z的ASCII码为65 - 90   

for i in range(65,91):
    print(chr(i))

  2.字母a-z的ASCII码为 97-122

for i in range(97,123)
    print(chr(i))

 

 

想要了解跟繁多的内置函数相关,可以点击内置函数:

     

转载于:https://www.cnblogs.com/sanzangdashi3/p/9931516.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值