Python希望找到一种更简单的方法来缩短我的.casefold()。count()

时间:2017-09-14 00:39:55

标签: python-3.x count case-folding

我的python代码运行正常,但代码看起来有点单调乏味。我想知道是否有更简单的方法来编写它。我有一个文本文件,我需要找到这些字母' aardvark'可以在线内找到。

if i.casefold().count('a') >= 3 and i.casefold().count('r') >= 2 and i.casefold().count('d') >= 1 and i.casefold().count('v') >= 1 and i.casefold().count('k') >=1:

2 个答案:

答案 0 :(得分:0)

if all(
 i.casefold().count(letter) >= 'aardvark'.count(letter)
 for letter in 'aardvark')

有点愚蠢的解决方案,但它有效

答案 1 :(得分:0)

以下是解决方案的互动演示:

>>> i = 'this is a test'
>>> all(i.casefold().count(x) >= y for x,y in [('a',3), ('r',2), ('d', 1), ('v',1)])
False

>>> i = 'ardv'*4
>>> i
'ardvardvardvardv'

>>> all(i.casefold().count(x) >= y for x,y in [('a',3), ('r',2), ('d', 1), ('v',1)])
True