Как я могу извлечь дополнительные индексы и соответствующие значения, выполняя итерацию по строке? - PullRequest
2 голосов
/ 05 августа 2020

Учитывая мою строку, я пытаюсь извлечь только значения numeri c, но с помощью функций index и find я могу извлечь только значение 7.22. Как мне выбрать остальные три числовые c значения после символа «=»?

stringa="[(Mark=7.22, Paola=3.12) , (Mark=30.1, Paola=1.78)]"
for i in stringa:
    i=stringa.index("=")
    n=stringa[i+1:i+5]
    print(n)

На выходе я получаю 7,22, напечатанное количество раз, равное длине строки! А мне нужно, чтобы вы распечатали 7.22, 3.12, 30.1 и 1.78.

1 Ответ

4 голосов
/ 05 августа 2020
import re

print(re.findall("\d+\.\d+", "[(Mark=7.22, Paola=3.12) , (Mark=30.1, Paola=1.78)]"))

Вывод:

['7.22', '3.12', '30.1', '1.78']

Если вам нужно преобразовать в float

print(list(map(float, re.findall("\d+\.\d+", "[(Mark=7.22, Paola=3.12) , (Mark=30.1, Paola=1.78)]"))))

Вывод:

[7.22, 3.12, 30.1, 1.78]

Если вы хотите сохранить результат в переменную

x = list(map(float, re.findall("\d+\.\d+", "[(Mark=7.22, Paola=3.12) , (Mark=30.1, Paola=1.78)]")))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...