Как перевести список в число python
Python | Преобразование всех строк в списке в целые числа
Взаимопревращение между типами данных облегчается библиотеками python. Но проблема преобразования всего списка строк в целые числа довольно распространена в области разработки. Давайте обсудим несколько способов решения этой конкретной проблемы.
Метод № 1: Наивный метод
Это наиболее общий метод, который поражает любого программиста при выполнении такого рода операций. Просто зацикливание по всему списку и преобразование каждой строки списка в int путем приведения типа.
# Python3 код для демонстрации
# преобразование списка строк в int
# используя наивный метод
# Печать оригинального списка
print ( «Original list is : » + str (test_list))
# используя наивный метод для
# выполнить преобразование
test_list[i] = int (test_list[i])
# Печать измененного списка
print ( «Modified list is : » + str (test_list))
Метод № 2: Использование понимания списка
Это всего лишь своего рода копия описанного выше метода, реализованная с использованием понимания списка, своего рода сокращения, которое разработчик всегда ищет. Это экономит время и сложность кодирования решения.
# Python3 код для демонстрации
# преобразование списка строк в int
# использование списка понимания
# Печать оригинального списка
print ( «Original list is : » + str (test_list))
# используя понимание списка для
# выполнить преобразование
test_list = [ int (i) for i in test_list]
# Печать измененного списка
print ( «Modified list is : » + str (test_list))
Способ № 3: Использование map()
Это самый элегантный, питонский и рекомендуемый метод для выполнения этой конкретной задачи. Эта функция предназначена исключительно для такого рода задач и должна использоваться для их выполнения.
# Python3 код для демонстрации
# преобразование списка строк в int
# используя карту ()
# Печать оригинального списка
print ( «Original list is : » + str (test_list))
# используя map () для
# выполнить преобразование
# Печать измененного списка
print ( «Modified list is : » + str (test_list))
Как преобразовать строковый список в целочисленный список в Python
Самый питонический способ преобразовать список строк в список INTS – это использование понимания списка [INT (X) для X в строках]. Это итерации по всем элементам в списке и преобразует каждый элемент X в списке в целочисленное значение, используя встроенный функцию int (x). Эта статья показывает вам самые простые … Как преобразовать строковый список в список целых в Python Подробнее »
Автор оригинала: Chris.
Эта статья показывает вам простейших способов Преобразовать одномерное Список состоящий только из строк в список ints Отказ
Сначала мы погрузимся в более легкую базовую проблему и изучить вариант проблемы в Метод 5 Отказ
Метод 1: Понимание списка
Предположим, у нас есть список:
Теперь проверьте тип элемента первого списка:
Давайте применим Встроенный Функция int () и получите список целых чисел, используя Понимание списка :
💡 Понимание списка является компактным способом создания списков. Простая формула – [Выражение + контекст] Отказ Выражение : Что делать с элементом каждого списка? Контекст : Какие элементы для выбора? Контекст состоит из произвольного количества для и Если заявления.
Вы можете смотреть, как я объяснил список списков в этом видео:
Проверьте тип номеров в новом списке:
Встроенная функция int () Преобразует строку в целое число. Таким образом, это помогает нам создать новый список INTS из списка строк в Одна линия кода Отказ
Метод 2: Функция карты
Встроенная функция карта Хорошо оптимизирован и эффективен, когда он вызывается, элементы списка извлекаются при доступе. Следовательно, один элемент хранится и обрабатывается в памяти, что позволяет программе не хранить весь список элементов в системе память Отказ
Применить к одному списку А Следующий код:
💡 карта () Функция применяет первый аргумент, функцию, к каждому элементу в итерателе. Он преобразует каждый элемент в оригинале, который потенциал для нового элемента и возвращает новый ИТЕРИТЕЛЬНО карта объект преобразованных значений. Чтобы получить список, вам нужно преобразовать его, используя встроенный Список () конструктор.
Вы можете наблюдать за моим видеочтером функции карты здесь:
Метод 3: для петли
Конечно, вы также можете конвертировать Список строк к Список ints Используя простой для петли Отказ Это то, что большинство людей, поступающих от языка программирования, такие как Java и C ++, будут делать, так как они не знают самых питоновых способов использования Понимание списка Тем не менее (см. Метод 1 ).
Этот базовый метод преобразовать Список строк к Список целых чисел Использует три шага:
Способ 4: список пометки + EVAL ()
Вы также можете использовать Eval () Функция в списке понимание для преобразования списка строк в список INTS:
💡 Встроенный Python Eval (ы) Функция разрабатывает строковый аргумент S В выражение питона запускает его и возвращает результат выражения. Если «выражение» – это простое целочисленное представление, Python преобразует аргумент S целому числу.
Вы можете наблюдать за мной, представляя Ins и ауты Eval () Функция в этом кратком направлении:
Метод 5: смешанное изображение строки с округлением
Задача состоит в том, чтобы сначала преобразовать каждую строку на поплавок и только затем преобразуйте его в целое число. Эти два шага являются неотъемлемой частью, и никто не может быть пропущен, потому что вам нужно, чтобы поплавок был способен представлять любой номер. Но вам также нужно целое число, так как это цель, которую вы изложили: преобразование списка строк в список INTS.
❗ Конвертировать Список смешанных строковых представлений к Список закругленные целые числа это, цепляя Встроенный Функции раунд () и поплавок () в оформлении Понимание списка выражение [раунд (поплавок (ы)) для S в A] Предполагая, что список представления смешанного строка хранится в переменной А Отказ
Вы можете узнать все о раунд () Функция в следующем видео:
Чтобы увеличить свои навыки Python навыки, не стесняйтесь присоединиться к моей бесплатной академии электронной почты с большим количеством бесплатного контента и читовных листов – если вы еще этого не сделали! 🙂
Если вы хотите пойти по всему и изучать Python во время оплаты в процессе, проверьте мой курс Freelancer Python – номер один внештатный разработчик в мире!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.
Перевод списка строк в список чисел
пытался таким способом преобразовать в числа, но в преобразует в рамках данного цикла
5 ответов 5
Наиболее идиоматический и идеологически выверенный способ:
Как понять, что это именно ссылка, а не копия элемента? Вот пример, как при помощи вызова метода элемента списка меняется сам элемент:
По поводу вашего ответа, перебор со счетчиком (если он вам вдруг действительно понадобится) на Python правильнее (проще и приятнее, без всяких len вложенных в range) делать через enumerate:
Различные способы выполнить это преобразование:
Изменяя непосредственно элементы массива
Создавая новый массив вместо старого
Вот более подробное объяснение происходящего:
Для начала вспомним, что все переменные в Python являются ссылками на объекты.
Пусть у нас будет массив array со следующим содержимым:
Заметьте, что строки не хранятся напрямую в списке, они хранятся снаружи, а в списке есть указатели на них.
Когда вы перебираете значения в цикле, например,
Например, на первой итерации:
Чтобы это сделать, нам нужно получить доступ на запись в конкретную ячейку списка. Список позволяет сделать это через доступ по индексу. Напишем следующий код (подобный которому как раз используется вами в собственном ответе):
Я расписал в несколько строк для наглядности.
Далее получаем строку, хранящуюся по этому индексу для того, чтобы преобразовать её в число (здесь она сохраняется в отдельной переменной, в вашем коде это будет временный объект):
Имея значение элемента, мы можем выполнить над ним интересующую нас операцию. Снова сохраним его в отдельной переменной.
Имея новое значение и индекс, по которому его нужно сохранить в нашем списке, у нас не остаётся проблем, чтобы завершить выполнение итерации, сохранив новое значение в нужном месте:
Таким образом и производится изменение значений массива.
Приведу для сравнения краткую запись этого кода:
Важно понимать, что на самом деле количество операций в этом варианте и в более полном варианте будет примерно одинаковое (за вычетом создания лишних переменных).
Если скомбинировать оба этих способа, можно получить немного более удобную запись этого же преобразования:
Функция enumerate для нашего списка вернёт последовательность вида
Такой цикл избавляет нас от необходимости писать самостоятельно доступ по индексу массива. Важно понимать, что переменная elem и здесь не даёт нам доступа на запись в массив, она просто хранит указатель на объект, хранящийся по текущему индексу в списке.
Эти способы имеют смысл, если нам важно изменять именно элементы списка. Например, если у нас есть больше одной переменной, хранящей этот список, и нам нужно сделать так, чтобы во всех переменных при доступе по индексу мы после преобразования получали целые числа вместо строк.
Такие ситуации встречаются, например, когда мы пишем функцию, которая должна изменить значения в переданном списке вместо создания нового.
Только стоит помнить, что в Python 3 функция map возвращает генератор, поэтому стоит явно преобразовать результат в список.
Ещё один удобный способ получения такого же результата, это использование генератора списков:
Оба этих решения эквивалентны и являются аналогом следующего кода:
Продемострирую разницу этих способов на примере:
Важно понимать, что здесь обе переменные будут указывать на один и тот же список, а не являться двумя списками с одинаковыми значениями (здесь все ссылки явно отрисованы стрелками):
Выполним преобразование, изменяя элементы списка:
Как мы видим, массив непосредственно изменился, а вместе с ним изменились данные, которые доступны по переменным, указывающим на этот список:
Если же воспользоваться вторым способом
то ещё по выводу программы можно заметить, что содержимое исходного списка не изменилось. Итоговая картина объектов будет выглядеть так:
Мы видим, что был создан новый список, в котором были сохранены числовые представления значений исходного.
Преобразование типов данных в Python 3
При написании программ часто возникает необходимость изменить тип данных, чтобы иметь возможность по-другому манипулировать значениями. Например, нам может потребоваться объединить числовые значения со строками или представить десятичные дроби в виде целых чисел.
В этой статье мы расскажем вам о преобразовании чисел, строк, кортежей и списков. Также вы найдете здесь примеры, которые помогут вам понять, в каких случаях может понадобиться преобразование данных.
Преобразование числовых типов
Бывает, вы работаете над чужим кодом и вам нужно преобразовать целое число в число с плавающей запятой (и наоборот). Или вы можете обнаружить, что использовали целое число, хотя на самом деле вам нужно число с плавающей запятой. Python имеет встроенные методы, позволяющие легко выполнить все эти преобразования.
Преобразование целых чисел в числа с плавающей запятой
Метод Python float() преобразует целые числа в числа с плавающей запятой. Чтобы использовать эту функцию, добавьте в скобки целое число:
В этом случае 57 будет преобразовано в 57.0.
Этот метод можно использовать и с переменной. Объявим f равным 57, а затем выведем новое значение с плавающей запятой:
Преобразование чисел с плавающей запятой в целые числа
В этом случае 390.8 будет преобразовано в 390.
Эту функцию можно использовать и с переменными. Давайте объявим b равным 125.0, а c — равным 390.8, а затем применим к переменным функцию int() :
При преобразовании чисел с плавающей запятой в целые числа с помощью функции int() Python отсекает все, что идет после запятой. Мы можем ожидать, что 390,8 округлится до 391, но с применением только лишь функции int() этого не произойдет.
Преобразование чисел путем деления
В Python 3 при делении одного целого числа на другое целое число результат преобразуется в число с плавающей запятой. То есть, если разделить 5 на 2, в Python 3 вы получите число с плавающей запятой:
В Python 2, так как вы имели дело с двумя целыми числами, вы получите ответ в виде целого числа: 5 / 2 = 2. Прочтите «Python 2 vs Python 3: Практические соображения» для получения дополнительной информации о различиях между Python 2 и Python 3.
Преобразования со строками
Тип данных string представляет собой последовательность из одного или нескольких символов (буквы, цифры, символы). Строки — это распространенная форма данных в компьютерных программах. Нам может потребоваться довольно часто преобразовывать строки в числа и наоборот, особенно когда мы получаем данные, созданные пользователем.
Преобразование чисел в строки
Давайте сначала рассмотрим преобразование целых чисел. Чтобы преобразовать целое число 12 в строку, передадим его в метод str() :
При запуске str(12) в интерактивной оболочке Python (чтобы войти в оболочку, введите python в окне терминала) вы получите следующий вывод:
Кавычки вокруг числа 12 означают, что оно теперь является строковым значением, а не целым числом.
Практический смысл преобразования чисел в строки становится понятнее, когда вы работаете с переменными. Допустим, мы хотим отслеживать ежедневный прогресс программирования пользователя. Для этого мы вводим, сколько строк кода он пишет за раз. Мы хотели бы давать обратную связь пользователю. Чтобы составить предложение, будем выводить одновременно и строковые, и целочисленные значения:
Когда мы запускаем этот код, мы получаем следующую ошибку:
Мы не можем объединять строки и целые числа в Python, поэтому нам придется преобразовать переменную lines в строковое значение:
Теперь при запуске кода мы получим следующий вывод, поздравляющий нашего пользователя с прогрессом:
Если мы хотим преобразовать в строку не целое число, а число с плавающей запятой, порядок действий остается прежним. Мы передаем в метод str() число с плавающей запятой, а возвращено будет строковое значение. Передавать в метод можно как само число, так и переменную:
Чтобы убедиться, что все правильно, мы можем объединить в выводе преобразованное число и строковые значения:
Мы можем быть уверены, что наш float был правильно преобразован в строку, потому что конкатенация была выполнена без ошибок.
Преобразование строк в числа
Давайте возьмем пример пользователя Сэмми, отслеживающего количество написанных строк кода. Чтобы предоставить пользователю более интересную обратную связь, мы можем проводить с полученными значениями какие-то математические действия. Но в настоящее время эти значения хранятся в строках:
Поскольку два числовых значения хранились в строках, мы получили ошибку. Операнд «-» для вычитания не является допустимым операндом для двух строковых значений.
Переменная lines_more автоматически является целым числом, и в этом примере она равна числовому значению 58.
В этом случае использование операнда «+» с двумя строками является допустимой операцией. Но эта операция объединяет две строки, а не складывает два числовых значения вместе. В результате наш output выглядит необычно, поскольку это просто два значения рядом друг с другом.
Перед выполнением любых математических операций нам нужно преобразовать эти строки в числа с плавающей запятой с помощью метода float() :
Теперь, когда мы преобразовали две строки в числа с плавающей запятой, мы получаем ожидаемый результат: сумму чисел 45.30 и 5524.53.
Если мы попытаемся при помощи метода int() конвертировать строку, представляющую собой десятичную дробь, в целое число, мы получим ошибку:
Преобразование строк в числа позволяет нам быстро изменять тип данных, с которым мы работаем. Благодаря этому мы можем выполнять математические операции с числовыми значениями, изначально сохраненными в строчном виде.
Преобразование в кортежи и списки
Вы можете использовать методы list() и tuple() для преобразования переданных им значений в тип данных списка и кортежа соответственно. В Python:
Преобразование в кортежи
Начнем с преобразования списка в кортеж. Поскольку кортеж — это неизменяемый тип данных, такое преобразование может способствовать существенной оптимизации наших программ. Метод tuple() возвращает «кортежную» версию переданного ему значения.
Мы видим, что в результате выводится кортеж, поскольку элементы теперь заключены в круглые, а не в квадратные скобки.
Давайте используем tuple() с переменной, представляющей список:
Опять же, мы видим, что значения списка преобразуются в значения кортежа, что обозначается круглыми скобками.
Мы можем преобразовать в кортеж не только список, но и любой итерируемый тип, включая строки:
Преобразование в списки
Чтобы сделать код более читабельным, мы можем ввести переменную и удалить одну из пар круглых скобок:
В список можно преобразовать не только кортеж, но и строку:
Заключение
В этой статье мы рассмотрели, как можно преобразовать одни типы данных в другие (в основном, с помощью встроенных методов). Возможность конвертировать типы данных в Python дает вам дополнительную гибкость при написании программ.
Преобразование типов данных в Python 3
Типы данных в Python позволяют классифицировать данные, определить значения, которые можно присвоить, и операции, которые можно выполнить с этими данными. В программировании бывает необходимо конвертировать один тип данных в другой, чтобы получить доступ к другим функциям: например, склеить числовые значения со строками или представить целые числа в виде десятичных.
Данное руководство научит вас преобразовывать числа, строки, кортежи и списки.
Преобразование числовых типов
В Python существует два числовых типа данных: целые числа и числа с плавающей точкой. Для преобразования целых чисел в числа с плавающей точкой и наоборот Python предоставляет специальные встроенные методы.
Преобразование целых чисел в числа с плавающей точкой
Метод float() преобразовывает целые числа в числа с плавающей точкой. Число указывается в круглых скобках:
Это преобразует число 57 в 57.0.
Также можно использовать переменные. Объявите переменную f = 57, а затем выведите число с плавающей точкой:
f = 57
print(float(f))
57.0
Преобразование чисел с плавающей точкой в целые числа
Встроенная функция int() предназначена для преобразования чисел с плавающей точкой в целые числа.
Функция int() работает так же, как и float(). Чтобы преобразовать число, добавьте его в круглые скобки:
Число 390.8 преобразуется в 390.
Эта функция также может работать с переменными. Объявите переменные:
Затем преобразуйте и отобразите их:
print(int(b))
print(int(c))
125
390
Чтобы получить целое число, функция int() отбрасывает знаки после запятой, не округляя их (потому 390.8 не преобразовывается в 391).
Преобразование чисел с помощью деления
При делении Python 3 может преобразовать целое число в число с плавающей точкой (в Python 2 такой функции нет). К примеру, разделив 5 на 2, вы получите 2.5.
Python не преобразовывает тип данных во время деления; следовательно, деля целое число на целое число, в результате вы получили бы целое число, 2.
Преобразование строк
Строка – это последовательность из одного или больше символов (цифр, букв и других символов). Строки – очень распространённый тип данных в программировании. Существует много способов преобразования строк.
Преобразование чисел в строки
Чтобы конвертировать число в строку, используйте метод str(). Поместите число или переменную в круглые скобки.
Попробуйте преобразовать целое число, например:
Запустив метод str(12) в интерактивной оболочке Python (с помощью команды python), вы получите вывод:
Кавычки означают, что теперь 12 является строкой, а не числом.
Особенно полезно преобразовывать числа в строки, используя переменные. К примеру, можно отследить, сколько строк кода в день пишет тот или иной пользователь. Если пользователь пишет больше 50 строк, программа отправит ему поощрительное сообщение.
user = «Michael»
lines = 50
print(«Congratulations, » + user + «! You just wrote » + lines + » lines of code.»)
Запустив этот код, вы получите ошибку:
TypeError: Can’t convert ‘int’ object to str implicitly
Python не может склеивать строки с числами, потому нужно преобразовать значение lines в строку.
user = «Michael»
lines = 50
print(«Congratulations, » + user + «! You just wrote » + str(lines) + » lines of code.»)
Теперь, запустив код, вы увидите:
Congratulations, Michael! You just wrote 50 lines of code.
Метод str() может преобразовать в строку и число с плавающей точкой. Поместите в круглые скобки число или переменную:
print(str(421.034))
f = 5524.53
print(str(f))
421.034
5524.53
Попробуйте выполнить конкатенацию строки и преобразованного в строку числа:
f = 5524.53
print(«Michael has » + str(f) + » points.»)
Michael has 5524.53 points.
Преобразование строк в числа
Строки можно преобразовать в числа с помощью методов int() и float()
Если в строке нет десятичных знаков, лучше преобразовать её в целое число. Для этого используется int().
Попробуйте расширить предыдущий пример кода, который отслеживает количество написанных строк. Пусть программа отслеживает, сколько строк пишет пользователь каждый день.
При запуске возникла ошибка, поскольку Python не может выполнить сложение строк. Преобразуйте строки в числа и попробуйте снова запустить программу:
Значение переменной lines_more – это число, в данном случае это 58.
Также можно преобразовать числа в предыдущем примере в числа с плавающей точкой. Для этого используйте метод float() вместо int().
К примеру, очки начисляются в десятичных значениях.
total_points = «5524.53»
new_points = «45.30»
new_total_points = total_points + new_points
print(new_total_points)
5524.5345.30
В данном случае оператор + склеивает две строки, а не складывает числа. Потому в результате получилось довольно странное значение.
Конвертируйте эти строки в числа с плавающей точкой, а затем выполните сложение.
total_points = «5524.53»
new_points = «45.30»
new_total_points = float(total_points) + float(new_points)
print(new_total_points)
5569.83
Как видите, теперь программа возвращает ожидаемый результат.
Если вы попробуете преобразовать строку с десятичными значениями в целое число, вы получите ошибку:
f = «54.23»
print(int(f))
ValueError: invalid literal for int() with base 10: ‘54.23’
Преобразование в кортежи и списки
Чтобы преобразовать данные в кортеж или список, используйте методы tuple() и list() соответственно. В Python:
Преобразование списка в кортеж
Преобразовывая список в кортеж, вы можете оптимизировать программу. Для преобразования в кортеж используется метод tuple().
print(tuple([‘pull request’, ‘open source’, ‘repository’, ‘branch’]))
(‘pull request’, ‘open source’, ‘repository’, ‘branch’)
Выведенные на экран данные являются кортежем, а не списком, поскольку они взяты в круглые скобки.
Попробуйте использовать tuple() с переменной:
sea_creatures = [‘shark’, ‘cuttlefish’, ‘squid’, ‘mantis shrimp’] print(tuple(sea_creatures))
(‘shark’, ‘cuttlefish’, ‘squid’, ‘mantis shrimp’)
В кортеж можно преобразовать любой итерируемый тип, включая строки:
Конвертируя в кортеж числовой тип данных, вы получите ошибку:
print(tuple(5000))
TypeError: ‘int’ object is not iterable
Преобразование в списки
Вы можете преобразовать кортеж в список, чтобы сделать его изменяемым.
Обратите внимание: при этом в методах list() и print() используется две пары круглых скобок. Одни принадлежать собственно методу, а другие – кортежу.
print(list((‘blue coral’, ‘staghorn coral’, ‘pillar coral’)))
[‘blue coral’, ‘staghorn coral’, ‘pillar coral’]
Если данные, которые вывел метод print, заключены в квадратные скобки, значит, кортеж преобразовался в список.
Чтобы избежать путаницы с круглыми скобками, можно создать переменную:
coral = (‘blue coral’, ‘staghorn coral’, ‘pillar coral’)
list(coral)
Строки тоже можно преобразовывать в списки:
Заключение
Теперь вы умеете преобразовывать различные типы данных Python с помощью встроенных методов, благодаря чему код вашей программы может стать более гибким.











