初学Python学的比较零散,有个不懂的问题始终找不到答案,恳望各位前辈赐教下
1 原义是根据字符串中不同字母的数量对一个字符串集合进行排序
2 代码
strings = ['foo', 'card', 'bar', 'aaaa', 'bbbb' ]
strings.sort(key= lamda x : len( set( list(x) ) ) )
输出结果为
strings
['aaaa', 'foo', 'abab', 'bar', 'card']
3 疑问
对于结果没有问题,疑问是
①在 lambda函数中 x是什么, 之前并没有声明x, 但是最后直接出现了list(x), 这样为什么不会出错
② 在之后的len(set(list 中, 我认为不应该是讲strings进行转换成list,然后转换成set了吗,按理说应该是len的是set(也就是里面有5个值结果为5),但是为何它能把这个x变成strings里的每个元素,然后一一list(),set(),len()吗
烦请赐教,感谢各位