Top.Mail.Ru
Ответы

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

Пишу код

12345678
  
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 ==""")) 

Хочу что-бы допустим, вместо

1234567
 ...
    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:    
... 

было

1234567
 ... 
    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:     
... 

Но вместо этого выводит

1234567
 ... 
    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:     
... 

Мне нужно что-бы там был скобочка как сделать?

Дополнен

Ну кто нибудь ответьте мне... Блин, ребят ну серьезно...

По дате
По рейтингу
Аватар пользователя
Новичок

Потому что строки неизменяемы. Реплейс возвращает новую измененную строку, которую надо чему-то присвоить.
В вашем случае возможно в самой строке нет такого куска, который вы заменяете

Аватар пользователя
Знаток

В смысле строки неизменяемы? А как тогда быть? Если строка на последующей строке?

Аватар пользователя
Знаток

А всё разобрался спасибо

Аватар пользователя
Мыслитель

Replace заменяет все элементы, а ты пытаешься заменить один, я правильно понимаю?

Аватар пользователя
Знаток

Да я уже разобрался, скопировал вывод и replac'ом изменил

1234567
 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 не изменил если он на следующей строке :\



Видео по теме