2016-11-06 39 views
0

我希望用户能够输入一段字符串(我知道如何做到这一点)如何在字符串中打印最少使用的元音?

然后,我希望Python计算每个元音(aeiou)使用的次数。

在计算每个元音使用了多少次之后,我需要程序返回至少使用过一次的最少使用的元音。如果不使用元音,则不应返回。在最少使用的情况下,两者都应退回。

如果没有使用元音,它应该打印错误代码“没有元音用”(我知道如何做到这一点)

例如:如果是这样的元音多少次在一个句子中使用:

a=4 
b=2 
c=0 
d=0 
e=2 

它应打印 “最少使用的元音是b和c,以2层的用途”。

回答

1

您可以:

  1. 取下字符串中的所有非元音字符。
  2. 用字符分割字符串。在#2列表中使用Counter

import re 
from collections import Counter 
s = 'asdfwerasdfwaxciduso' 
only_vowels = re.sub(r"[^aeiou]", "", s) 
c = Counter(list(only_vowels)) 
c.most_common()[-1] 
+0

这实际上非常有用......谢谢你。这个编码不允许我做的唯一事情是:如果最少使用的元音与另一个元音使用相同的次数,那么必须打印两个元音。我怎样才能做到这一点? –

+0

我无法找到您对我评论的回复?如果有多个最不常见的元音,如何打印两个元音?除此之外 - 完美的答案。我会很快将答案标记为已接受的答案 - 将给您机会作出回应,因为我仍然不确定如何打印多个最不常见的元音! –

+0

感谢您的帮助 –

0

这样做是艰难的 - 逐个字母的写法。使用for循环迭代字符串,并为每个字母递增字典值。最后,用元音检查键并找到最小的。

+0

谢谢 - 我该如何去忽略它使用的零时刻任何元音? –

+0

如果没有使用字母,它没有密钥。使用默认值为1的Collections中的defaultdict,这样在第一次尝试添加一个时不会吓坏了。 – zenlc2000

+0

谢谢 - 最后Q - 假设两个元音共享相同的最低值。我怎样才能打印它们两个呢? –

相关问题