作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个循环遍历一系列四个(或更少)字符的字符串的脚本。例如:
aaaa
aaab
aaac
aaad
如果能够像这样用嵌套的 for 循环实现它:
chars = string.digits + string.uppercase + string.lowercase
for a in chars:
print '%s' % a
for b in chars:
print '%s%s' % (a, b)
for c in chars:
print '%s%s%s' % (a, b, c)
for d in chars:
print '%s%s%s%s' % (a, b, c, d)
这种循环嵌套是坏事吗?如果是这样,什么是完成我正在做的事情的更好方法?
最佳答案
import string
import itertools
chars = string.digits + string.letters
MAX_CHARS = 4
for nletters in range(MAX_CHARS):
for word in itertools.product(chars, repeat=nletters + 1):
print (''.join(word))
这将打印您要查找的所有 15018570
单词。如果您想要更多/更少的单词,只需更改 MAX_CHARS
变量即可。对于任意数量的字符,它仍然只有两个 for
,您不必自己重复。并且非常可读。 .
关于python - 是否替换嵌套的 For 循环...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/482146/
我是一名优秀的程序员,十分优秀!