什么是将字符串的长度增加到任意整数x的简单方法?像'a'转到'z',然后转到'aa'到'zz'到'aaa'等。通过循环增加字符串大小
回答
这应该做的伎俩:
def iterate_strings(n):
if n <= 0:
yield ''
return
for c in string.ascii_lowercase:
for s in iterate_strings(n - 1):
yield c + s
它返回一个发电机。 您可以用迭代它的循环:
for s in iterate_strings(5)
或取得字符串列表:如果你想遍历短串过
list(iterate_strings(5))
,您可以使用此功能:
def iterate_strings(n):
yield ''
if n <= 0:
return
for c in string.ascii_lowercase:
for s in iterate_strings(n - 1):
yield c + s
尽管它倒退,很酷! – calccrypto 2010-05-14 23:52:11
修复了倒退的问题。 我的回答请投票:) – Adam 2010-05-14 23:53:59
我试过了,但显然我需要15个声望 – calccrypto 2010-05-15 00:02:10
您可以乘以整数中的字符串。 例如
>>> 'a' * 2
'aa'
>>> 'a' * 4
'aaaa'
>>> 'z' * 3
'zzz'
>>> 'az' * 3
'azazaz'
是的,但我想穿过所有的排列组合 – calccrypto 2010-05-14 23:38:58
让我们看看我是否正确:您想遍历'aaaa'和'zzzz'之间的所有字符串,('aaaa','aaab','aaac' ,....'zzzz')。 – Adam 2010-05-14 23:43:00
正确。直到字符串为x字符长 – calccrypto 2010-05-14 23:48:03
这是我的解决方案,类似于亚当的,除非它不递归。 :]
。
from itertools import product
from string import lowercase
def letter_generator(limit):
for length in range(1, limit+1):
for letters in product(lowercase, repeat=length):
yield ''.join(letters)
,它返回一个generator
,所以你可以使用一个for
循环遍历它:
for letters in letter_generator(5):
# ...
玩得开心!
(这是今天第二次我发现itertools.product()
有用。活泉。)
- 1. C++通过字符串循环
- 2. 在ReactJs中,通过循环字符串
- 3. C#:循环通过在字符串
- 4. Grepl in for循环,通过字符串
- 5. 循环回通过字符串数组
- 6. 通过循环连接字符串
- 7. VIM:通过字符串循环
- 8. 通过字符串循环来检查特定的大小写匹配
- 9. 通过for循环及时增加值
- 10. Java - 通过字符串数组进行循环循环
- 11. C#:通过多行字符串循环循环
- 12. For循环增值通过
- 13. 通过循环将字符串对象添加到数组
- 14. 如何通过在字符串的末尾添加循环编号来更改FOR循环中的字符串?
- 15. 通过字符串汇编循环来计算字符数
- 16. 通过字符数组和循环字符循环
- 17. 增加字符串的字体大小和样式
- 18. python递增字符循环
- 19. 循环中C++字符串大小变化
- 20. 增加php字体大小
- 21. Extjs + PHP通过增加Java堆大小来增强性能
- 22. 字符串下标超出范围。字符串大小是未知的和循环字符串,直到空
- 23. PHP字符串循环,并加入
- 24. 如何使用循环来增加滚动视图大小(swift3)
- 25. 循环平稳立方体的大小增加
- 26. 增加大小
- 27. 通过分隔符将长字符串潜入小字符串
- 28. 通过循环更改文件名(字符串) - Java
- 29. 通过在Windows中使用组字符串值循环在cmd
- 30. 如何通过空字符串抨击for循环
哪里'x'进来吗?就像字符串是“abc”而“x”是4,字符串变成“abg”? – 2010-05-14 23:36:24
oops。我的意思是说,字符串变成x长,所以如果x = 4,字符串将是'aaaa'...''zzzz' – calccrypto 2010-05-14 23:38:04
有点相关,请参阅[this code golf](http://stackoverflow.com/questions/) 2634427 /代码高尔夫球数字相当于-的-AN-Excel的列名称/)。 – 2010-05-15 12:36:15