Не срабатывает replace по условию

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Win 7. Python 3.8
Есть строка вида: 25.20 -1.0000 1.242
Разрезаю её сплитом, потом делаю проверку на наличие в ней "-1.0000" (типа пропуск), после этого хочу заменить либо на 0, либо на признак отсутствующего значения. Не получается - значение остается. Код прилагаю.
Python:
f.rstrip()
dr = f.split('\t')
j=0
while j<len(dr):
    if dr[j]=='-1.0000':
        dr.replace('-1.0000', '0')
    j+=1
 

Noor

Пользователь
Пользователь
Ноя 13, 2020
85
19
8
1. f.rstrip() - так не работает, попробуйте f=f.rstrip()
2. я так понимаю вы значения передаете в список dr и потом значение "-1.0000" хотите поменять на "0". У списка нету такого атрибута как replace и зачем вам replace, просто присвойте нужное значение элементу списка.
попробуйте так
Python:
f = " 25.20 -1.0000 1.242 "
f=f.rstrip()
dr = f.split('\t')
j=0
while j<len(dr):
    if dr[j]=='-1.0000':
        dr[j]='0'
    j+=1
print(dr)
посмотреть пример выполнения можно тут
 
Последнее редактирование:

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
я так понимаю вы значения предаете в список dr и потом значение "-1.0000" хотите поменять на "0".Зачем вам replace, просто присвойте нужное значение элементу списка.
попробуйте так
Python:
f.rstrip()
dr = f.split('\t')
j=0
while j<len(dr):
    if dr[j]=='-1.0000':
        dr[j]='0'
    j+=1
print(dr)
Да, вариант рабочий. Простой настолько, что даже в голову не пришел. Спасибо, а то я что-то слегка переусложнил.
 

Форум IT Специалистов