用两个可能的字符集替换字符串中的字符

时间:2018-11-26 12:47:50

标签: python string python-3.x list permutation

a = ["0$%","0%%%","0$%$%","0$$"]

上面是一个损坏的通信代码,其中每个序列的第一个元素都伪装为0。我想通过用$或%替换0然后计算所有可能序列的列表来恢复原始和正确的代码检查哪个序列有效。如果正确,则将每个序列想像为对应于一个字母。例如,“ $$$”可能对应于字母“ B”。

这是我到目前为止所做的

    raw_decoded = []
    word = []
    for i in a:
        for j in i:
            if j == "0":
                x = list(itertools.product(["$", "%"], *i[1:]))
                y = ("".join(i) for i in x)
    for i in y:
        raw_decoded.append(i)
    for i in raw_decoded:
        letter = code_dict[i] #access dictionary for converting to alphabet
        word.append(letter)
   return word

2 个答案:

答案 0 :(得分:0)

不确定您的意思,也许您可​​以添加所需的输出。我从您的问题中得到的信息可以通过以下方式解决:

b = []
for el in a:
   if el[0] == '0':
       b.push(el.replace('0', '%', 1))
       b.push(el.replace('0', '$', 1))
   else:
       b.push(el)

答案 1 :(得分:0)

尝试:

output  = []

for elem in a:
    replaced_dollar = elem.replace('0', '$', 1)
    replaced_percent = elem.replace('0', '%', 1)

    # check replaced_dollar and replaced_percent

    # and then write to output

    output.append(replaced_...)