Python方法配合lambda使用

2019-04-15  本文已影响0人  Donald_32e5

一、lambda

二、方法的关键字参数

list1 = [1, -32, 43, -3, 2, -3]
print(sorted(list1, key=lambda x: abs(x)))

# [1, 2, -3, -3, -32, 43]

三、注意事项

a = {1: {'n1': 22}, 23: {'n2': 4}, 32: {"n3": 93}, 43: {'n4': 54}}


def s(x):
    print(x)
    return list(a[x].values())[0]


print(min(a, key=s))


# --------------
1
23
32
43
23

可以看出来,min给的参数是他遍历的结果,如果是多层嵌套结构,要对里面的元素进行排序,可以逐层取出
lambda写法

dict_a = {1: {'n1': 22}, 23: {'n2': 4}, 32: {"n3": 93}, 43: {'n4': 54}}

print(min(a, key=lambda x: list(a[x].values())[0]))

print(sorted(a, key=lambda x: list(a[x].values())[0]))


# ----------------
23
[23, 1, 43, 32]

*这里的列表是dict_a键,根据他第二层的value来排序的
如果要显示整个字典,使用列表推导式完成:

print([{i: a[i]} for i in sort_a])

# -------
[{23: {'n2': 4}}, {1: {'n1': 22}}, {43: {'n4': 54}}, {32: {'n3': 93}}]
上一篇 下一篇

猜你喜欢

热点阅读