python3 lambda

63 阅读1分钟
# 语法
# lambda 参数列表: 表达式
# 其中表达式必须有返回值

# 无参
print((lambda : 100)())  # 100

# 一个参数
print((lambda a: a)("hello world"))  # hello world

# 默认参数
a = lambda a, b, c=100: a + b + c
value = a(10, 20)
print(value)  # 130

# 可变参数
a = lambda *args: args
value = a(10, 100)
print(value)  # (10, 100)

# 可变参数2
a = lambda **kwargs: kwargs
value = a(name="xiaoming", age=100)
print(value)  # {'name': 'xiaoming', 'age': 100}

# if
a = lambda a, b: a if a> b else b
value = a(100, 200)
print(value)  # 200

# 列表
list1 = [    {"name":"tom", "age":20},    {"name":"xiaoming", "age":18},    {"name":"lubanqihao", "age":8},]
list1.sort(key=lambda x:x["name"])
print(list1)  # [{'name': 'lubanqihao', 'age': 8}, {'name': 'tom', 'age': 20}, {'name': 'xiaoming', 'age': 18}]

list1.sort(key=lambda x:x["name"], reverse=True)
print(list1)  # [{'name': 'xiaoming', 'age': 18}, {'name': 'tom', 'age': 20}, {'name': 'lubanqihao', 'age': 8}]