Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему replace не заменяет строку?

Леха Миронов Мастер (2419), закрыт 2 года назад
Пишу код
  
d = ""
for x in range(1,27):
d+="\n if len(lst_in["+str(x)+"].split()) >= 2:\n print(' [',g["+str(x-1)+"].split()[::-1][0],' ',g["+str(x-1)+"].split()[::-1][1],']',sep='')"
print("if d == "+str(x)+": "+"""\n if len(lst_in[0].split()) >= 2:
print('[[',g[0].split()[::-1][1],' ',g[0].split()[::-1][0],']',sep='')"""+d.replace("[::-1][0],' ',","[::-1][1],' ',").replace("[::-1][1],']]',sep=''","[::-1][0],']]',sep=''").replace("[::-1][1],']',sep=''","[::-1][0],']',sep=''").replace("""[::-1][0],']',sep='')
if d ==""","""[::-1][0],']]',sep='')
if d =="""))
Хочу что-бы допустим, вместо
 ...
if len(lst_in[12].split()) >= 2:
print(' [',g[11].split()[::-1][1],' ',g[11].split()[::-1][0],']',sep='')
if len(lst_in[13].split()) >= 2:
print(' [',g[12].split()[::-1][1],' ',g[12].split()[::-1][0],']',sep='')
if d == 14:
...
было
 ... 
if len(lst_in[12].split()) >= 2:
print(' [',g[11].split()[::-1][1],' ',g[11].split()[::-1][0],']',sep='')
if len(lst_in[13].split()) >= 2:
print(' [',g[12].split()[::-1][1],' ',g[12].split()[::-1][0],']]',sep='')
if d == 14:
...
Но вместо этого выводит
 ... 
if len(lst_in[12].split()) >= 2:
print(' [',g[11].split()[::-1][1],' ',g[11].split()[::-1][0],']',sep='')
if len(lst_in[13].split()) >= 2:
print(' [',g[12].split()[::-1][1],' ',g[12].split()[::-1][0],']',sep='')
if d == 14:
...
Мне нужно что-бы там был скобочка как сделать?
Дополнен 2 года назад
Ну кто нибудь ответьте мне... Блин, ребят ну серьезно...
Лучший ответ
Оракул Оракул (63221) 2 года назад
Потому что строки неизменяемы. Реплейс возвращает новую измененную строку, которую надо чему-то присвоить.
В вашем случае возможно в самой строке нет такого куска, который вы заменяете
Леха МироновМастер (2419) 2 года назад
В смысле строки неизменяемы? А как тогда быть? Если строка на последующей строке?
꧁Tester꧂ ︎ Просветленный (20060) Леха Миронов, Строка - это неизменяемый тип данных.
Леха МироновМастер (2419) 2 года назад
А всё разобрался спасибо
Остальные ответы
꧁Tester꧂ ︎ Просветленный (20060) 2 года назад
Replace заменяет все элементы, а ты пытаешься заменить один, я правильно понимаю?
Леха МироновМастер (2419) 2 года назад
Да я уже разобрался, скопировал вывод и replac'ом изменил
 print(' [',g[24].split()[::-1][1],' ',g[24].split()[::-1][0],']',sep='') 
if len(lst_in[26].split()) >= 2:
print(' [',g[25].split()[::-1][1],' ',g[25].split()[::-1][0],']',sep='')"""
d = s.replace("""']',sep='')
if d ==""","""']]',sep='')
if d ==""")
print(d)
Оказывается надо было присвоить код переменной, но я все равно непонимаю почему replace не изменил если он на следующей строке :\
꧁Tester꧂ ︎ Просветленный (20060) Леха Миронов, в случаях, когда что-то не понятно, нужно разбить код и проверять его по отдельности, на более простом примере. Или в дебаггере запустить.
Похожие вопросы