如何在Python sort()中编写用于计算字符串中出现次数的lambda函数

时间:2016-08-01 01:12:26

标签: python sorting lambda

我正在尝试编写一个lambda函数(对Python的函数式编程风格来说仍然是新的)。我有一个这样的清单:

cur_list = [b'1z1zzz\r\n', b'1z1z1zzz\r\n', b'1z1z1zzz\r\n', b'zzzz\r\n', b'1zzzz\r\n']

我想按每个列表中出现“1”的次数对列表进行排序。所以在上面的列表中,正确的(排序的)解决方案将是这样的:

cur_list = [b'zzzz\r\n', b'1zzzz\r\n', b'1z1zzz\r\n', b'1z1z1zzz\r\n', b'1z1z1zzz\r\n']

可以将哪些lambda函数插入到以下代码片段中,以便在给定的字符串列表中按“1”的出现进行有效排序?

cur_list.sort(key=#####what lambda function to insert here)

感谢您的回答!

1 个答案:

答案 0 :(得分:3)

那将是:

lambda x: x.count('1')

当然,你所拥有的似乎是一个字节字符串数组,你可能想要这个:

lambda x: x.count(b"1")