Как преобразовать список строк в список чисел python
Перейти к содержимому

Как преобразовать список строк в список чисел python

  • автор:

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

В этом посте мы обсудим, как преобразовать список строк в список целых чисел в Python.

Например, список [«1», «2», «3», «4», «5»] следует преобразовать в список [1, 2, 3, 4, 5] .

1. Использование map() функция

Рекомендуемое решение — вызвать встроенную функцию map() для эффективного преобразования списка строк в список целых чисел. Он применяет указанную функцию к каждому элементу списка, получая результаты. Поскольку он возвращает итератор, преобразуйте результат в список. Эта функция показана ниже:

Как преобразовать список строк в список чисел python

Interconversion between data types is facilitated by python libraries quite easily. But the problem of converting the entire list of strings to integers is quite common in the development domain. Let’s discuss a few ways to solve this particular problem.

Method 1: Using eval()

Python eval() function parse the expression argument and evaluate it as a python expression and runs Python expression(code), If the expression is an int representation, Python converts the argument to an integer.

Python3

Output:

Method 2: Naive Method

This is the most generic method that strikes any programmer while performing this kind of operation. Just looping over the whole list and converting each string of the list to int by type casting.

Python3

Output:

Method 3: Using list comprehension

This is just a kind of replica of the above method, just implemented using list comprehension, a kind of shorthand that a developer looks for always. It saves the time and complexity of coding a solution.

Python3

Output:

Method 4: Using map()

This is the most elegant, pythonic, and recommended method to perform this particular task. This function is exclusively made for this kind of task and should be used to perform them.

Python3

Output:

Method 5: List of strings with mixed integer representations

Here, we will first convert each string to a float first and then we will convert it into an integer by using the round() function, otherwise, it will through error.

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

Python_Deep_21.1-5020-77b56f.png

Иногда нам нужно выполнить преобразование строки в целое число либо в число с плавающей точкой. Потребность в этом возникает для осуществления ряда операций. Как это сделать в Python, мы сейчас и поговорим.

Чтобы осуществить преобразование строки в целое число либо число с плавающей точкой, в Python используют функции int и float. Если вы захотите выполнить преобразование без применения данных функций, то получите ошибку. Например, к ошибке приведёт следующий код:

Преобразование строки в целое число с помощью int() в Python

Давайте посмотрим на следующий участок кода:

С его помощью мы выведем значение переменной «c», которое будет представлять собой сумму переменных «str_a» и «b».

Преобразуем десятичную строку в число с плавающей точкой в Python

Для преобразования строки в число с плавающей точкой мы можем использовать float:

Однако учтите, что если вы захотите задействовать тут функцию int() , это приведёт к ошибке.

Преобразуем список строковых чисел в список целых чисел в Python

Бывает, что в Python необходимо выполнить преобразование строки из чисел, содержащихся в списке. В таких случаях нам поможет генератор списков. Таким образом создаётся новый список, где можно использовать функцию int() в каждой итерации:

Мы выведем новый список, который будет состоять из целых чисел, полученных из строк.

Преобразуем список строк в список чисел с плавающей точкой в Python

Аналогично можно применять float вместо int для выполнения преобразования списка, включающего в себя строки из целых чисел:

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

Что делать, если у нас строка наподобие «1,000,000»? Если мы попробуем выполнить её преобразование с помощью функций int() либо float() , мы получим ошибку.

Одно из решений — применение import locale:

Приём работает, но он не идеален. Другое решение — заменить запятые на пустые строки, а потом применить уже известную нам функцию int:

Результат — целое значение. Это же решение мы можем использовать и для преобразования строки в число с плавающей точкой в Python.

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

Как известно, пользовательский ввод в «Пайтоне» воспринимается как строка. К примеру, в следующем коде программа попросит пользователя ввести год, а после ввода значений программа сообщит, является ли этот год високосным. При этом введённое значение сначала будет преобразовано в целое число, а потом будет задействована формула расчёта високосного года:

Таким образом происходит преобразование вводимой строки в целое число, а потом это число применяется для расчёта.

Как преобразовать целое число в строку в Python?

При выполнении преобразования целых чисел в строки используется функция str() . Она принимает объект, который может иметь тип int, float, double и так далее.

Давайте посмотрим на пример преобразования переменной int в строку, которая потом применяется как строка для конкатенации:

Результат будет следующим:

Кстати, если бы целочисленная переменная была нами использована без str() , результатом стала бы ошибка TypeError.

10. Преобразование и проверка типов в Python

В предыдущем уроке мы познакомились с условной инструкцией if/elif/else в Python. Хотя мы уже касались преобразования типов в уроке про типы данных, и вы на практике ощутили их необходимость для языка с сильной типизацией, давайте все равно еще раз рассмотрим и научимся проверять их, чтобы избежать нелепых ситуаций при преобразовании из одного типа в другой.

Преобразование типов

Рассмотрим 7 функций: int() , bin() , hex() , list() , set() , tuple() и str() .

Чтобы преобразовать строку в число, воспользуйтесь функцией int():

С помощью функции int() можно преобразовать число, записанное двоичным форматом, в десятичную запись:

Преобразовать десятичное число в двоичный формат можно при помощи функции bin() :

Аналогично можно преобразовать в шестнадцатеричный формат при помощи функции hex() :

Обратите внимание, функции bin() и hex() возвращают результат в виде строки.

Мы еще не рассматривали списки (они будут рассмотрены далее), но все равно рассмотрим, как преобразовать строку в список:

Обратите внимание, в список можно преобразовывать только итерируемые объекты (строки, кортежи, словари, файлы), т.е. те объекты, которые могут возвращать элементы по одному. Сейчас это может быть не совсем понятно, но далее все прояснится.

Для преобразования строки (или другого итерируемого объекта) во множество, используйте функцию set() :

Напомню, множество – это изменяемая, неупорядоченная последовательность уникальных элементов. Далее пример, как получить все уникальные элементы списка:

Для преобразования объекта в кортеж, существует функция tuple() :

Напомню, кортеж – это неизменяемый список.

И последняя функция str() , для преобразования объекта в строку:

Проверка типов

При преобразовании типов могут возникнуть проблемы, например:

Проблема кажется надуманной. Но все же иногда возникает необходимость проверить, с каким типом данных мы работаем. Например, вам нужно пройтись по списку строк и преобразовать все элементы, содержащие числа, в числовой тип. Для этих целей есть метод isdigit() . Метод isdigit() вернет True , если строка состоит только из цифр:

Чтобы проверить строку на наличие в своем составе только букв, используйте метод isalpha() .

И последний метод isalnum() , который проверяет, состоит ли строка из цифр или букв.

Часто, исходя из полученного результата (строка, число, список и т.д.) необходимо строить ход программы с использованием условной конструкции, о которой вы узнали в предыдущем уроке:

В этом помогает функция type() , которая возвращает тип объекта, переданного в параметре.

В этом уроке мы еще раз повторили преобразование одних типов в другие и научились определять тип переменной для последующей корректной ее обработки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *