python匿名函数以及三元运算

# python 使用 lambda 来创建匿名函数。
# 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
# lambda 只是一个表达式,函数体比 def 简单很多。
# lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
# lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
# 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

# lambda 函数的语法只包含一个语句,如下:
# lambda [arg1 [,arg2,.....argn]]:expression

# 如下实例:
func = lambda _value1, _value2: _value1 + _value2
print(func(1, 2))  # >>>3

# 三元运算
'''
if a:
    b
else:
    c
可以等效为:    b if a else c
'''
# 例如
print('憨批') if 2 > 1 else print('笨蛋')
age = 19
print('继续上学吧' if age < 18 else '可以参军了')

# 可放在lambda中实现选择逻辑
# 例如:
_max = lambda x, y: x if x > y else y
print(_max(8, 10))  >>10

# 可把参数放在最后

_min = (lambda x, y: x if x < y else y)(15, 18)
print(_min)  >>15

# lambda缺点:只能是单个表达式,不是一个代码块,设计只是满足简单函数的场景,仅仅能封装有限的逻辑。

lambda函数与Python内置函数配合使用

member_list = [
    {"name": "唐三", "age": 99, "power": 10000},
    {"name": "小舞", "age": 89, "power": 9000},
    {"name": "唐昊", "age": 120, "power": 8000}
]
new_list = sorted(member_list, key=lambda dict_: dict_["power"])
print(new_list)
[{'name': '唐昊', 'age': 120, 'power': 8000}, {'name': '小舞', 'age': 89, 'power': 9000}, {'name': '唐三', 'age': 99, 'power': 10000}]

sort()函数

sort(*, key=None, reverse=False)
此方法会对列表进行原地排序,只使用 < 来进行各项间比较。 异常不会被屏蔽 —— 如果有任何比较操作失败,整个排序操作将失败(而列表可能会处于被部分修改的状态)。

sort() 接受两个仅限以关键字形式传入的参数 (仅限关键字参数):

key 指定带有一个参数的函数,用于从每个列表元素中提取比较键 (例如 key=str.lower)。 对应于列表中每一项的键会被计算一次,然后在整个排序过程中使用。 默认值 None 表示直接对列表项排序而不计算一个单独的键值。

reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。

sorted(iterable, *, key=None, reverse=False)

根据 iterable 中的项返回一个新的已排序列表。

具有两个可选参数,它们都必须指定为关键字参数。

key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较元素)。

reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值