我不太理解sorted()参数背后的语法:
key=lambda variable: variable[0]
不是任意的吗?为什么变量声明两次在什么看起来像字典?
我不太理解sorted()参数背后的语法:
key=lambda variable: variable[0]
不是任意的吗?为什么变量声明两次在什么看起来像字典?
当前回答
简单且不耗时的回答,并给出与所问问题相关的例子 下面这个例子:
user = [{"name": "Dough", "age": 55},
{"name": "Ben", "age": 44},
{"name": "Citrus", "age": 33},
{"name": "Abdullah", "age":22},
]
print(sorted(user, key=lambda el: el["name"]))
print(sorted(user, key= lambda y: y["age"]))
看看名单上的名字,他们以D、B、C和a开头,如果你注意一下年龄,他们是55岁、44岁、33岁和22岁。 第一个打印代码
print(sorted(user, key=lambda el: el["name"]))
结果:
[{'name': 'Abdullah', 'age': 22},
{'name': 'Ben', 'age': 44},
{'name': 'Citrus', 'age': 33},
{'name': 'Dough', 'age': 55}]
对名称进行排序,因为通过key=lambda el: el["name"],我们正在对名称进行排序,并且名称按字母顺序返回。
第二次打印代码
print(sorted(user, key= lambda y: y["age"]))
结果:
[{'name': 'Abdullah', 'age': 22},
{'name': 'Citrus', 'age': 33},
{'name': 'Ben', 'age': 44},
{'name': 'Dough', 'age': 55}]
按年龄排序,因此列表按年龄升序返回。
为了更好地理解,请尝试以下代码。
其他回答
lambda是一个Python关键字,用于生成匿名函数。
>>> (lambda x: x+2)(3)
5
因为lambda的用法是在sorted()的上下文中被问到的,所以也看一下这个https://wiki.python.org/moin/HowTo/Sorting/#Key_Functions
简单且不耗时的回答,并给出与所问问题相关的例子 下面这个例子:
user = [{"name": "Dough", "age": 55},
{"name": "Ben", "age": 44},
{"name": "Citrus", "age": 33},
{"name": "Abdullah", "age":22},
]
print(sorted(user, key=lambda el: el["name"]))
print(sorted(user, key= lambda y: y["age"]))
看看名单上的名字,他们以D、B、C和a开头,如果你注意一下年龄,他们是55岁、44岁、33岁和22岁。 第一个打印代码
print(sorted(user, key=lambda el: el["name"]))
结果:
[{'name': 'Abdullah', 'age': 22},
{'name': 'Ben', 'age': 44},
{'name': 'Citrus', 'age': 33},
{'name': 'Dough', 'age': 55}]
对名称进行排序,因为通过key=lambda el: el["name"],我们正在对名称进行排序,并且名称按字母顺序返回。
第二次打印代码
print(sorted(user, key= lambda y: y["age"]))
结果:
[{'name': 'Abdullah', 'age': 22},
{'name': 'Citrus', 'age': 33},
{'name': 'Ben', 'age': 44},
{'name': 'Dough', 'age': 55}]
按年龄排序,因此列表按年龄升序返回。
为了更好地理解,请尝试以下代码。
lambda和排序的另一种用法如下:
给定输入阵列:人= [[7 0],[4 4],[7,1],[5,0],[6,1],[5,2]]
线:people_sort =排序(人,关键=λx: (x - x[0],[1]))将people_sort列表[[7,0],[7,1],[6,1],[5,0],[5,2],[4 4]]
在本例中,key=lambda x:(-x[0], x[1])基本上告诉sorted首先根据每个实例的第一个元素的值对数组进行排序(按照减号所示的降序排列),然后在同一子组中,根据每个实例的第二个元素进行排序(按照默认选项的升序排列)。
希望这是对你有用的信息!
左边的变量是一个参数名。右边变量的使用是利用了参数。
意思几乎完全相同:
def some_method(variable):
return variable[0]