【问题标题】:Function that yield or return all situation of small and Capital letters产生或返回大小写字母的所有情况的函数
【发布时间】:2020-09-21 00:59:21
【问题描述】:

每次我在循环中调用函数时,是否有任何函数可以采用“字符串”并产生所有小写和大写字母的情况。例如:

我将 "string" 赋予函数

它会产生所有情况,例如:

"String"
"sTring"
"stRing"
"strIng"
"striNg"
"strinG"
"STring"
"StRing"
"StrIng"
"StriNg"
"StrinG"
...

我是 python 新手,虽然可能有一个库或函数可以做到这一点,但我不知道。

【问题讨论】:

  • 请检查以下内容:stackoverflow.com/questions/6792803/…
  • 请注意,有 2^N 种可能性,其中N 是字符串的长度——每增加一个字符,可能性的数量就会翻倍。对于长字符串,这可能会非常耗时。
  • 这能回答你的问题吗? Finding all possible case permutations in Python
  • @JeriesHaddad 不错的发现。作为参考,不要忘记在这种情况下您可以将问题标记为重复问题,以便人们可以在近距离投票队列中查看它。
  • 感谢@JeriesHaddad,但是当我给出“我的名字是鲍勃,123456 是我的号码”时,这个功能太慢了,它不能躲避号码和因为错误

标签: python function yield yield-return


【解决方案1】:

关于'它不能躲避数字和cuz错误',有两种解决方法(您可以将功能修改为):

  1. 在每次迭代中添加一个 try / except,如下所示:
try:

except:
    continue
  1. 使用 isnumeric() 函数检查 'char' 是否为数值,如下所示:
> if char.isnumeric():
>         continue

【讨论】:

  • 看来我犯了一个错误,这个算法可以用这部分if first.lower() == first.upper(): 躲避数字和空格@ 这对于字母总是 False,但对于其他人来说是 True。无论如何,它是钢慢的,我需要做一些事情,这个函数不会产生所有的可能性,并且一个一个地使它们然后我使用它,如果它没有帮助我我使用下一个,所以这不会因为 MemoryError 跨度>
猜你喜欢
  • 2013-09-02
  • 1970-01-01
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 2018-03-28
  • 2022-01-25
  • 2023-04-09
  • 2021-01-24
相关资源
最近更新 更多