谁能解释这个lambda函数? x代表什么?

时间:2018-11-01 14:13:47

标签: python python-3.x lambda

假设您要按数字对字符串集合进行排序 每个字符串中不同字母的组合:

strings = ['foo', 'card', 'bar', 'aaaa', 'abab']

在这里,我们可以将lambda函数传递给列表的sort方法:

strings.sort(key=lambda x: len(set(list(x))))
strings
['aaaa', 'foo', 'abab', 'bar', 'card']

2 个答案:

答案 0 :(得分:0)

它正在计算每个单词的唯一字母。

len(set(list(x))) #creating a set.

集合是项目的无序集合。每个元素都是唯一的(没有重复),并且必须是不可变的(不能更改)。

排序功能将此作为排序标准。它将根据此lambda表达式对元素进行求值和排序。

答案 1 :(得分:0)

sort在列表的每个元素上调用给定的键函数,并在比较两个元素时使用该函数的返回值。在这种情况下,列表元素将根据每个元素包含多少个 unique 字符进行排序。例如,aaaa排在第一位,因为键函数的求值为1,并且它是唯一仅包含一个唯一字符的元素。

要回答标题中的问题,x是列表strings的元素。