Изменение порядка тройки символов в Python
Я пытался решить эту домашнюю проблему в течение нескольких дней, но не могу ее решить. Я начал учебу в середине первого семестра, поэтому пока не могу спросить учителя и надеюсь, что вы, ребята, сможете мне помочь. Это не для оценок, я просто хочу знать, как.
Мне нужно написать программу, которая читает строку и конвертирует триплеты abc
в до. Per group of three you need to do this. For example
katzonbecomes
atkonz`.
Самое близкое, что я получил, это:
string=(input("Give a string: "))
for i in range(0, len(string)-2):
a = string[i]
b = string[i + 1]
c = string[i + 2]
new_string= b, c, a
i+=3
print(new_string)
Выход:
('a', 't', 'k')
('t', 'z', 'a')
('z', 'o', 't')
('o', 'n', 'z')
1 ответ
Код ниже преобразует, например, " abc " в " bca ". Это работает для любой строки, содержащей тройки. Теперь, если input - " abc d", он преобразуется в " bca d". Если вы введете " katzon ", он преобразуется в " atkonz ". Это то, что я понял из твоего вопроса.
stringX = input()
# create list of words in the string
listX = stringX.split(" ")
listY = []
# create list of triplets and non-triplets
for word in listX:
listY += [[word[i:i+3] for i in range(0, len(word), 3)]]
# convert triplets, for example: "abc" -> "bca"
for listZ in listY:
for item in listZ:
if len(item)==3:
listZ[listZ.index(item)] = listZ[listZ.index(item)][1:] + listZ[listZ.index(item)][0]
listY[listY.index(listZ)] = "".join(listZ)
# create final string
stringY = " ".join(listY)
print(stringY)