Замена символа в строке набором из двух возможных символов - PullRequest
0 голосов
/ 26 ноября 2018
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 голосов
/ 26 ноября 2018

Попробуйте это:

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_...)
0 голосов
/ 26 ноября 2018

Не уверен, что вы имеете в виду, возможно, вы могли бы добавить желаемый результат.То, что я получил от вашего вопроса, может быть решено следующим образом:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...