python - 将 itertools.product() 结果附加到 Python 中的变量

标签 python python-itertools

我正在尝试将每个可能的两位数组合附加到列表中每个字符串的末尾。

字符串各八个字符,数字应替换第七个和第八个字符。

我正在使用 itertools.product() 生成这些两位数组合,但我不确定如何将这些组合附加到字符串。我尝试使用 join(),但这会将字符串夹在两个数字之间。

我的下一次尝试在下面,但没有成功,因为您无法连接 'str''itertools.product' 对象

for p in passwords:
    candidates += list(p[:6] + itertools.product(string.digits, string.digits))

所以,密码看起来像这样

['american', 'japanese']

输出应该是

['americ00', 'americ01', 'americ02', …, 'japane98', 'japane99']

最佳答案

因为你只是在数数,所以不需要产品这可以缩写为:

 lst = ['american', 'japanese']
 candidates = ['{}{:02d}'.format(e[:6], i) for e in lst for i in range(100)]

与循环相似

candidates = []
for e in lst:
    for i in range(100):
        candidates.append('{}{:02d}'.format(e[:6], i))

如果出于某种原因真的想要产品:

['{}{}{}'.format(e[:6], i, j) for e in lst for i, j in itertools.product(string.digits, string.digits)]

这也可以推广到具有更多参数的产品

[e[:6] + ''.join(pr) for e in lst for pr in itertools.product(string.digits, string.digits, string.digits)]

关于python - 将 itertools.product() 结果附加到 Python 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28397417/

相关文章:

python itertools 产品慢是输出文件的写入速度的瓶颈

Python/pip,如何从 github 安装特定版本的 git 存储库(正确的 url 是什么)?

python - 无法使用 pyplot for ndarray 绘制双条、条形图

python - 如何从Python中的特定点开始Itertools循环?

Python组合和产品

python - 如何在具有许多列的 pandas 数据框中生成所有可能的列组合?

python - python 数组中字符串的可能组合?

Python Selenium 等待加载多个元素

python - 将 C 方法附加到现有的 Python 类

python - Flask 动态路由正在采用我未指定的值