码迷,mamicode.com
首页 > 其他好文 > 详细

十四天:匿名函数

时间:2019-09-26 09:18:42      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:pytho   final   for   href   最大   筛选   fun   分栏   整数   

匿名函数

匿名就是没有名字,所以他就没办法调用,只能和某些方法联用

匿名函数语法 :lambda 参数:返回值

但是你如果真的想调用匿名函数,也可以赋值,但是他就变成了有名函数

f = lambda x,y : x**y
res = f(1,2)
print(res)

匿名函数基本上都是和内置方法联用

max/min 返回最大值/最小值

salary_dict = {
     'nick': 3000,
     'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
}

  def func(name):  # nick/jason/tank/sean/z
      return salary_dict[name]  # 3000/100000/5000/2000/1000
 res = max(salary_dict, key=func)  # 默认key的首字母

 res = max(salary_dict, key=lambda name: salary_dict[name])  # 默认key的首字母
 print(res)
 # key=func默认做的事情
 # 1. 循环遍历salary_dict,会取到所有的key值
 # 2. 然后把所有的key值依次丢入func中,返回薪资
 # 3. 通过返回的薪资排序,得到最大值

 res = min(salary_dict, key=lambda name: salary_dict[name])
 print(res)

fileter 筛选

def function(item):  # 1/2/3/4
    if item < 5:
         return True
     else:
         return False


res = filter(function, [1, 2, 3, 4])
res = filter(lambda item: item > 2, [1, 2, 3, 4])
print(res)  # 迭代器
print(list(res))

 salary_dict = {
     'nick': 3000,
     'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
 }

 res = filter(lambda item: salary_dict[item] > 3000, salary_dict)
 print(list(res))

map 映射

 def function1(item):
     return item + 2


 res = map(function1, [1, 2, 3, ])
 print(res)
 print(list(res))
    
   

salary_dict = {
     'nick': 3000,
     'jason': 100000,
     'tank': 5000,
     'sean': 2000,
     'z': 1000
 }

res = map(lambda salary:salary_dict[salary] +500,salary_dict)
print(list(res))

内置函数

或许能用到的

byte()解码字符

char()/ord()

char()参考ASCII吗表将数字装成对应字符串;ord()佳能字符串转成对应数字

divmod()分栏,编程中的整除求余

print(divmod(10,3))  # (3,1)
#                 整数部   余数部

enumerate() 英语释义枚举,python中是带有索引的迭代

lt = ['a','b,'c']
for i in enumerate(lt)
    print(i) 
# (0,'a')
# (1,'b')
# (2,'c')

eval() 评估,把字符串翻译成数据类型

lis = '[1,2,3]'
lis_eval = eval(lis)
print(lis_eval)
# [1,2,3]

hash()判断是否可哈希

不一定用的到的

  1. abs:绝对值
  2. all:可迭代对象内元素全为真,则返回真。
  3. any:可迭代对象中有一元素为真,则为真。
  4. bin/oct/hex:二进制、八进制、十六进制转换
  5. dir:列举出模块所有的功能。
  6. frozenset:不可变集合
  7. gloabals/locals:查看全局名字/查看当前位置名字
  8. pow:
  9. round:
  10. slice:
  11. sum:
  12. __import__:通过字符串导入模块

异常处理的部分用法

 异常处理: 报了错,进行处理
#
# print(1)
# num = input('请输入数字:')
#
# dic = {'a': 1}
#
# try:
#
#     print(dic['b'])  # KeyError
#     1 / int(num)  # 报错之后,不运行下面的代码
#
# except ZeroDivisionError:
#     print('傻逼,不能输入0')
# except KeyError:
#     print('傻逼,不知道什么错误')
#
# print(2)


# print(1)
# num = input('请输入数字:')
#
# dic = {'a': 1}
#
# try:
#
#     print(dic['b'])  # KeyError
#     1 / int(num)  # 报错之后,不运行下面的代码
#
# except Exception as e:  # 万能异常,只要有错误,就捕捉
#     print(e)  # 错误的描述信息
#     print('傻逼,不知道什么错误')
#
# print(2)

# # 异常捕捉只能捕捉逻辑错误
# fr = open('test.py')
# try:
#     # 文件中途报错
#     1 / 0
#     fr.close()
# except Exception as e:
#     print(e)
# finally:  # 无论你包不报错,都执行这一行
#     print('finally')



# assert 断言 + 条件--> 被历史淘汰了
#
# num = input('num:')
#
#
# assert 1==int(num)





# raise 主动抛错误

十四天:匿名函数

标签:pytho   final   for   href   最大   筛选   fun   分栏   整数   

原文地址:https://www.cnblogs.com/lyyblog0715/p/11588561.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!