Как избавиться от слова в списке строк - PullRequest
0 голосов
/ 20 февраля 2020

В настоящее время у меня есть такой список:

['Rating 3.9577555469954', 'Rating 3.730694980695', 'Rating 4.0717869548437', 'Rating 4.0597014925373', 'Rating 3.7323798994975']

Я пытаюсь избавиться от части «Рейтинг». Как мне добиться, чтобы в конце в моем списке были только числа / числа с плавающей запятой?

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Альтернатива ответу Джорданма с использованием regex:

import re
strings = ['Rating 3.9577555469954', 'Rating 3.730694980695', 'Rating 4.0717869548437', 'Rating 4.0597014925373', 'Rating 3.7323798994975']
floats = [float(re.findall('([0-9]+[,.]+[0-9]+)',x)[0]) for x in strings]
print(floats)

Выходы:

[3.9577555469954, 3.730694980695, 4.0717869548437, 4.0597014925373, 3.7323798994975]

Это будет захватывать все цифры, независимо от "рейтинга" или другого слова, которое может предшествовать Это. (например, если Ratings)

0 голосов
/ 20 февраля 2020

L oop через список и лишить значения. Мне нравится использовать UPPER или LOWER, чтобы поймать все случаи.

my_list = ['Rating 3.9577555469954', 'Rating 3.730694980695',
           'Rating 4.0717869548437', 'Rating 4.0597014925373', 'Rating 3.7323798994975']

new_list = []

for value in my_list:
    new_list.append(value.upper().strip('RATING').strip())

print(new_list)

Результаты:

['3.9577555469954', '3.730694980695', '4.0717869548437', '4.0597014925373', '3.7323798994975']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...