如何从字符串列表中获取少量特定字符串?

时间:2017-11-30 15:20:16

标签: python string python-3.x python-2.7

我有一个字符串列表和一个函数getVowel 此函数返回字符串中存在的元音数。 这是示例代码。

s = "hello ,this is a string"
no = getVowel(s)
lis = []
lis.append(s)

假设我在列表lis中没有字符串。
如何获得最多没有元音的前3个字符串。

4 个答案:

答案 0 :(得分:1)

sorted(lis, key=lambda x:getVowel(x), reverse=True)[:3]

这样的事情。顺便说一句,根据Python代码约定,函数的正确名称应为get_vowel。

答案 1 :(得分:0)

基于这个答案: https://stackoverflow.com/a/9887456/4671300

from heapq import nlargest
results = nlargest(3, lis, key=getVowel)

答案 2 :(得分:0)

假设您的函数 getVowel 确实有效,请尝试以下操作:

sorted(lis, key=lambda x: getVowel(x), reverse=True)[:3]

已排序文档:https://docs.python.org/3.6/library/functions.html?highlight=sorted#sorted

答案 3 :(得分:0)

sorted列表中取出最后三个元素而不是将其反转,然后取前三个会更有效。

为此,只需使用[-3:]作为索引:

sorted(lis, key=lambda I: getVowel(i))[-3:]