#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
.