用输入mas生成pass_字

2024-05-18 07:53:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有像---这样的输入屏蔽词,我想用数字(0-9)替换所有的{}

代码:

def masker(input_mask,pattern):
 s = list()
 s = (itertools.product(pattern,repeat=1))

 for i in input_mask:
  if ( i=='-'): 
   for j in s :
    print (input_mask.replace('-',''.join(j)))


masker ('-a-' , '123')

但我的输出是:

^{pr2}$

我的主要目标是:

1a1
1a2
1a3
2a1
....
....
3a3

Tags: 代码inforinputifdefmask数字
1条回答
网友
1楼 · 发布于 2024-05-18 07:53:26

在您的代码中j = '1'中。然后将所有-替换为。。。在


我的建议是使用str.format作为mask(即用{}代替{})。然后你可以这样做:

from itertools import product

def masker(input_mask, pattern):
    mask = input_mask.replace('-', '{}')  # mask = '{}a{}'
    for values in product(pattern, repeat=2):
        print(mask.format(*values))

masker(input_mask='-a-', pattern='123')

还要注意product中的repeat=2。要使其更通用,您需要使用repeat=input_mask.count('-')。在

相关问题 更多 >