У меня есть этот код:Как изменить положение в строке?
a = "I'll buy paper,pen and beg"
print a[::-1]
Выход: ГЭБ днк неп, repap yub ll'I
Но я хочу выход быть похожим на это: g'eb днк неп г, EPAP yub llI
Как я могу это сделать?
У меня есть этот код:Как изменить положение в строке?
a = "I'll buy paper,pen and beg"
print a[::-1]
Выход: ГЭБ днк неп, repap yub ll'I
Но я хочу выход быть похожим на это: g'eb днк неп г, EPAP yub llI
Как я могу это сделать?
Может быть, как это:
targets = ".,'"
a = "I'll buy paper,pen and beg"
punct = [ (i, c) for i, c in enumerate (a) if c in targets]
nopunct = [c for c in a if c not in targets][::-1]
for i, c in punct: nopunct.insert (i, c)
b = ''.join (nopunct)
print (a)
print (b)
Печатается
g'eb dna nepre,pap yub llI
I'll buy paper,pen and beg
Или изменение цели только .,
печатает
geb dna neprep,ap yub ll'I
I'll buy paper,pen and beg
Вы можете использовать 'target = string.punctuation', чтобы получить все знаки препинания – jonrsharpe
@jonrsharpe Хороший ввод. Давайте оставим это для OP, чтобы решить. – Hyperboreus
Спасибо @Hyperboreus Я все еще пытаюсь понять код. –
Возьмите обращенную строку и построить генератор, который включает в себя только альфа-символы. Затем используйте это как источник подстановки для букв альфа в будущем:
s = "I'll buy paper,pen and beg"
rev = (ch for ch in reversed(s) if ch.isalpha())
new = ''.join(next(rev) if ch.isalpha() else ch for ch in s)
# g'eb dna nepre,pap yub llI
Спасибо человеку, его действительно короткий код. @Jon Clements –
Другими словами, вы хотите изменить символы букв и пробелов, но не знаки препинания? – kojiro
Почему в ваших примерах должен быть апостроф как в 'g'eb', так и' ll'I'? – LittleBobbyTables
Ваш желаемый результат имеет два апострофа. Откуда появился другой? – iCodez