У меня есть строка, скажем, p = '25 VHVH 74 V 6 HV 8 VH '.Здесь VHVH, V, HV, VH называются цепями.цепочка1 = цепочка VHVH2 = цепочка V3 = цепочка HV4 = цепочка VH.
Я хотел случайным образом выбрать любую цепочку и дополнить их (означает изменение H на V или V на H) в строке.
Например, если я возьму chain1, моя строка будет p = '25 HVHV 74V6HV8VH ', если я возьму chain4, тогда моя строка будет p =' 25VHVH74V6HV8 HV '
Краткое описание:
Ввод: '25 VHVH 74 V 6 HV 8 VH '
выход: '25 HVHV 74V6HV8VH' или '25VHVH74 H 6HV8VH' или '25VHVH74V6 VH 8VH' или '25VHV8746 HV ''
В настоящее время я могу получить индекс начала каждой цепочки.Затем, используя list.index (), я должен заменить один из них, но я считаю, что это неэффективный способ добиться того, чего я хочу.Я застрял в этом факте ...
pe = list(enumerate(polish_exp))
chain_pos = {}
for i in pe:
if i[1] in ['H','h','V','v']:
chain_pos.update({i[0]:[i[1]]})
count = 0
for j in pe[pe.index(i)+1:]:
if j[1] in ['H','h','V','v']:
chain_pos[i[0]].append(j[1])
count += 1
else:
break
print(chain_pos)
Вывод, который я получаю в настоящее время для вышеуказанного кода
{2: ['V'], 4: ['H'],8: ['V', 'H'], 9: ['H'], 11: ['V'], 13: ['V', 'H'], 14: ['H']}
Вход: «25VHVH74V6HV8VH»
Ожидаемый выход: «25HVHV74V6HV8VH» или «25VHVH74H6HV8VH» или «25VHVH74V6VH8VH» или «25VHVH74V6HV8H»