【问题标题】:Generating pass_words with input mask使用输入掩码生成密码
【发布时间】:2017-08-14 19:47:03
【问题描述】:

我有像--- 这样的输入掩码字,我想用数字(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')

但我的输出是:

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

我的主要目标是这个输出:

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

【问题讨论】:

  • ...你为什么要这样做?
  • 它的等符号它什么都没有

标签: python python-2.7 python-3.x input-mask


【解决方案1】:

在您的代码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('-')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2019-07-15
    • 2015-01-20
    • 2020-08-15
    相关资源
    最近更新 更多