如果要按字母顺序列出具有2个不同元音和3个不同辅音的所有单词,我想用python写一个代码来查找ACDEF的等级?
import string
import itertools
VOWELS = set('AEIOU')
def genwords(length=5, vowels=2):
for letters in itertools.product(string.ascii_uppercase, repeat=5):
num_vowels = sum(1 for letter in letters if letter in VOWELS)
if num_vowels == vowels:
yield ''.join(letters)
for index, word in enumerate(genwords()):
if word == 'ACDEF':
print(index)
break
[这里,我制作了一个生成器,它以所需的长度和元音数量吐出所有单词;然后enumerate
提供相关单词的索引(从0开始;如果要基于1的排名,则加1)。