Преобразование списка строк в список чисел Python

#python #regex #list

#python #регулярное выражение #Список

Вопрос:

Я использую регулярные выражения в Python 3 для получения списка значений:

 lst = ['1.1' , '2.2' , '3.3']
  

Вместо этого мне нужен список чисел, как показано ниже:

 lst = [1.1 , 2.2 , 3.3]
  

Комментарии:

1. Не используйте list в качестве имени переменной, поскольку оно уже используется встроенной функцией.

2. Поскольку вы используете Python 3, вы можете попробовать: lst = list(map(float, lst)) .

Ответ №1:

Попробуйте map функцию python. Он принимает функцию и итерацию и применяет функцию к каждому элементу в итерации.

 lst = list(map(float, lst))
  

В list python 3 требуется вызов, поскольку встроенная функция map возвращает специальный объект map, а не список.
Я бы также рекомендовал не использовать list в качестве имени переменной, поскольку list это встроенная функция в python.

Комментарии:

1. OP использует Python 3.x, где map больше не возвращает список. Вам нужно сделать: lst = list(map(float, lst)) .

2. Хорошая уловка — я добавлю приведение к списку.

3. Я бы не назвал это «приведением». Это просто создание списка из итерируемого.

Ответ №2:

Вы можете использовать понимание списка.

 lst = ['1.1' , '2.2' , '3.3']
lst = [float(x) for x in lst]
  

Я использую lst здесь, потому list что оно уже занято встроенным list .