我有一个字符串列表和一个函数getVowel 此函数返回字符串中存在的元音数。 这是示例代码。
s = "hello ,this is a string"
no = getVowel(s)
lis = []
lis.append(s)
假设我在列表lis中没有字符串。
如何获得最多没有元音的前3个字符串。
答案 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:]