这个问题在这里已有答案:
假设您希望按每个字符串中不同字母的数量对字符串集合进行排序:
strings = ['foo', 'card', 'bar', 'aaaa', 'abab']
在这里,我们可以将lambda函数传递给列表的排序方法:
strings.sort(key=lambda x: len(set(list(x))))
strings
['aaaa', 'foo', 'abab', 'bar', 'card']
它计算每个单词的唯一字母。
len(set(list(x))) #creating a set.
集合是无序的项目集合。每个元素都是唯一的(没有重复),必须是不可变的(不能更改)。
Sort函数将此作为排序条件。它将根据此lambda表达式对元素进行评估和排序。
sort
在列表的每个元素上调用给定的键函数,并在比较两个元素时使用函数的返回值。在这种情况下,列表中的元素将根据每个元素包含的唯一字符数进行排序。例如,aaaa
首先出现,因为key函数的计算结果为1,它是唯一只包含一个唯一字符的元素。
要回答标题中的问题,x
是strings
列表中的一个元素。