如何获得一个单词的所有大写?

时间:2014-09-18 15:00:45

标签: python string capitalization

我正在尝试一段时间来想象一种在Python中生成单词的所有可能大写的方法。例如:

hello
Hello
HEllo
...
heLLo
...
HeLlO

我发现了一些内置函数,它们可以处理大小写(例如.capitalize()),但它们似乎可以解决典型案例(简单句子,参考书目)。我会很感激能看到我想到的for循环的位置,以及递归不是解决方案(我不会在这里提到它们,它们是错误的)


澄清:由于5到9人(通过暂停,downvote和评论)需要澄清,我会尝试使用不同的单词制作一个。

  

我有一个由a到z的字符组成的字符串(后面称为 word )。我希望,在Python中,获取所述单词的列表,但是以所有可能的方式大写(即大写字母的混合(如M)和小写一些(如f)。这会产生一个类似于上面的列表(包含 word hello的变体。

我很高兴我没有问过如何将两个数字相乘,我需要用代数环中的速成课程来澄清。

2 个答案:

答案 0 :(得分:5)

使用itertools.product

import itertools
for chars in itertools.product('hH', 'eE', 'lL', 'lL', 'oO'):
    print(''.join(chars))

OR

word = 'hello'
for chars in itertools.product(*zip(word, word.upper())):
    print(''.join(chars))

输出:

hello
hellO
helLo
helLO
heLlo
heLlO
heLLo
heLLO
...

答案 1 :(得分:0)

重新解释问题的 get 时,也可​​能意味着:

如何评估键盘输入错误的移位键(假设情况不重要)?

然后,我可能会尝试这个

import re

m = re.match(user_input, "hello", re.IGNORECASE);

......或者只是这个

user_input.lower() == "hello"