python中字符串的词法排名

问题描述 投票:0回答:1

如果要按字母顺序列出具有2个不同元音和3个不同辅音的所有单词,我想用python写一个代码来查找ACDEF的等级?

python itertools
1个回答
0
投票
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)。

© www.soinside.com 2019 - 2024. All rights reserved.