Как из строки-числа сделать список чисел
Задача следующая:
Мне нужно считать строку, например, ‘234567’, и вывести список чисел [2,3,4,5,6,7].
Я знаю метод строк split(), который позволит строку разбить на подстроки [‘2′,’3′,’4′,’5′,’6′,’7’], но чтобы он успешно сработал, нужно, чтобы между числами стояли пробелы: ‘2 3 4 5 6 7’. Буду очень благодарен, если подскажете, как вставлять пробелы в исходную строку
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как из строки сделать список
Как из строки id_производителя — фирма, id_поставки — дата_поставки сделать спиок , ] но также.
Как из строки сделать многомерный список
Как с помощью split из строки id_производителя — фирма, id_поставки — дата_поставки сделать список.
Как сделать список с кумулятивной суммой чисел?
Sample Input: 12345 Sample Output: Как сделать список с кумулятивной суммой чисел?
7279 / 4102 / 1794
Регистрация: 27.03.2020
Сообщений: 6,926
Сообщение было отмечено Welemir1 как решение
Решение
80phone,
1 2 3 4 5 6 7
s ='234567' lst = [int(i) for i in s] # список чисел print(lst) lst = list(map(int, iter(s))) # список чисел lsts = list(iter(s)) # список символов print(lst) print(lsts)
Автоматизируй это!
7054 / 4559 / 1207
Регистрация: 30.03.2015
Сообщений: 13,132
Записей в блоге: 29
Сообщение было отмечено 80phone как решение
Решение
Сообщение от Gdez
b = list(iter(s)) # список символов
чего народ то распугиваешь?
b = list(s)
7279 / 4102 / 1794
Регистрация: 27.03.2020
Сообщений: 6,926
Welemir1,
Status 418
4356 / 2254 / 589
Регистрация: 26.11.2017
Сообщений: 5,186
Записей в блоге: 3
Регистрация: 24.08.2021
Сообщений: 2
Спасибо за быстрый ответ!
@ Garry Galler
Сообщение от 80phone
Буду очень благодарен, если подскажете, как вставлять пробелы в исходную строку
А на вопрос ТС так никто и не ответил . 🙂
80phone,
Сага о XYZ.
Меню пользователя @ Garry Galler |
Читать блог |
3540 / 2144 / 566
Регистрация: 02.09.2015
Сообщений: 5,435
Сообщение было отмечено 80phone как решение
Решение
Сообщение от Garry Galler
А на вопрос ТС так никто и не ответил . 🙂
Строки же иммутабельны?
Добавлено через 2 минуты
Сообщение от 80phone
как вставлять пробелы в исходную строку
1 2 3
s = "234567" t = " ".join(s) assert t == "2 3 4 5 6 7"
Автоматизируй это!
7054 / 4559 / 1207
Регистрация: 30.03.2015
Сообщений: 13,132
Записей в блоге: 29
Сообщение от Arsegg
s = «234567»
t = » «.join(s)
assert t == «2 3 4 5 6 7»
ну хоть кто-то по делу написал))
Am I evil? Yes, I am!
16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
1 2 3 4
import re s = '123456' print(re.sub(r'(?<=.)(?=.)', ' ', s))
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
Сообщение от 80phone
Буду очень благодарен, если подскажете, как вставлять пробелы в исходную строку
print(*list('123456'))
3540 / 2144 / 566
Регистрация: 02.09.2015
Сообщений: 5,435
Сообщение от AlexMarkov
print(*list(‘123456’))
Тогда уже: print(*»123456″) .
Am I evil? Yes, I am!
16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
Сообщение от AlexMarkov
print(*list(‘123456’))
И где тут вставка пробелов?
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
Сообщение от iSmokeJC
И где тут вставка пробелов?
В стандартном потоке вывода, надо знать о такой возможности, вот и все.
Не «вумничайте» пожалуйста, если хотите что то сказать чего я не знаю, так и скажите.
Сообщение от Arsegg
print(*»123456″)
Что здесь, есть пробелы?
Am I evil? Yes, I am!
16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
Сообщение от AlexMarkov
Что здесь, есть пробелы?
Не надо стрелки переводить, Arsegg лишь доработал твой код.
Сообщение от AlexMarkov
Не «вумничайте» пожалуйста
И в мыслях не было. Задача стоит — вставить в строку пробелы. Твой код эту задачу не выполняет. Именно это я и сказал.
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
Сообщение от iSmokeJC
Твой код эту задачу не выполняет
Да как же не выполняет, а почему
Вывод тогда:
1 2 3 4 5 6
Там что не пробелы?
Am I evil? Yes, I am!
16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
AlexMarkov, ну присвой это переменной. И разбей сплитом потом.
Добавлено через 3 минуты
Вывести в консоль с пробелами и вставить в строку пробелы — несколько разные вещи.
99 / 86 / 20
Регистрация: 10.09.2019
Сообщений: 708
iSmokeJC, ну это я прекрасно понимаю, поэтому и не отвечал на этот вопрос, а просто сказал о возможности использования оператора *
Добавлено через 6 минут
" ".join(list('12345')).split()
Добавлено через 57 секунд
Сообщение от 80phone
Как из строки-числа сделать список чисел
Тема звучала так.
Am I evil? Yes, I am!
16119 / 9755 / 2730
Регистрация: 21.10.2017
Сообщений: 21,624
Сообщение от AlexMarkov
Тема звучала так.
А собственно вопрос звучал так
Сообщение от 80phone
Буду очень благодарен, если подскажете, как вставлять пробелы в исходную строку
Добавлено через 2 минуты
Ладно, хватит оффтопить. ТС получил ответ на свой вопрос.
3540 / 2144 / 566
Регистрация: 02.09.2015
Сообщений: 5,435
iSmokeJC,
1 2 3 4 5 6 7
from io import StringIO sio = StringIO() print(*"234567", file=sio) result = sio.getvalue() print(result)
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
HTML список без перехода строки или как сделать кружочек?
Как в HTML сделать чтобы следующий элемент списка был без перехода на новую строку или каким.
Как в питоне сделать список, в котором все элементы — однозначные числа типа int
Нужен сам код команды, которая сделает список, в котором все элементы — однозначные числа типа.
Построить список чисел. 4 числа из списка начиная с i-го номера поместить в новый список
Построить список чисел. 4 числа из списка начиная с i-го номера поместить в новый список. Вывести.
Необходимо сделать так, чтобы последовательность # воспринималась Лиспом как список симметричных чисел
Необходимо сделать так, чтобы последовательность # воспринималась Лиспом как список.
Как преобразовать список чисел с плавающей запятой в список целых чисел в Питоне
Самый питонический способ преобразовать список чисел с плавающей запятой fs в список целых чисел – использовать однострочный код fs = [int (x) for x in fs]. Он перебирает все элементы в списке fs, используя понимание списка, и преобразует каждый элемент списка x в целочисленное значение с помощью конструктора int (x).
В этой статье показаны простейшие способы преобразования одномерного списка, состоящего только из чисел с плавающей запятой , в список целых чисел.
Проблема: Дан список чисел с плавающей запятой [1.0, 2.0, 3.0] . Как его преобразовать в список целых чисел [1, 2, 3] ?
Способы неприменимы к спискам списков. При необходимости можно добавить циклы или определить пользовательские функции.
Метод 1: Список
Предположим у нас есть список:
a = [1.1, 1.2, 1.8, 0.5, 5.9, -2.3]
Проверим тип элементов списка:
print(type(a[0])) #
Применим встроенную функцию int, получим список состоящий из целых чисел:
print([int(a) for a in a]) # [1, 1, 1, 0, 5, -2]
Проверим тип элементов списка:
A = [int(a) for a in a] print(type(A[0])) #
Таким образом, используя встроенную функцию int, которая, преобразуя вещественное число, делает округление в сторону нуля, а вернее будет сказать – отбрасывает дробную часть, мы можем однострочным кодом получить новый список целых чисел.
Метод 2: Функция Map
Встроенная функция map, является хорошо оптимизированной и эффективной, при ее вызове элементы списка извлекаются при обращении, а следовательно в памяти находится и обрабатывается один элемент, что позволяет программе не хранить в памяти системы весь список элементов.
Применим к тому же списку ‘a’ код ниже:
print(list(map(int, a))) # [1, 1, 1, 0, 5, -2]
Проверять тип элементов полученного списка мы не будем, так как при вызове функции ‘map’ передали в нее уже описанную в методе 1 функцию ‘int’ в качестве аргумента, а результат обернули в список применением функции ‘list’.
Метод 3: Функция Round в определении Списка
Он очень схож с первым, но в отличие от ‘int’, он не просто отбрасывает дробную часть, а округляет до ближайшего четного целого числа, если дробная часть равна 0,5. Также можно передать в качестве второго аргумента количество знаков после запятой, до которых необходимо округление, по умолчанию это 0, этим мы и воспользуемся:
print([round(a) for a in a])
Проверим тип чисел нового списка:
D = [round(a) for a in a] print(type(D[0])) #
Как видим из этого примера, есть разные встроенные функции для достижения нашей цели, отличие в способе и величине погрешности при округлении.
Метод 4: Модуль Math
В этом способе я предлагаю воспользоваться импортируемым модулем ‘math’, в котором будем использовать три функции ceil() , floor() , и trunc() . Рассмотрим подробнее каждый. Синтаксис у них одинаковый, различие в способе округления.
Применим к изначальному списку:
a = [1.1, 1.2, 1.8, 0.5, 5.9, -2.3] print([math.ceil(a) for a in a]) # [2, 2, 2, 1, 6, -2]
‘Ceil’ округляет к ближайшему большему целому числу с учетом знака(-2.3 < -2 вывод будет True)
Проверим тип чисел в полученном списке:
C = [math.ceil(a) for a in a] print(type(C[0])) #
Рассмотрим следующую функцию в модуле ‘math’ – ‘floor’, её действие противоположно ‘ceil’ – округляет в меньшую сторону к ближайшему целому числу:
print([math.floor(a) for a in a]) # [1, 1, 1, 0, 5, -3]
F = [math.floor(a) for a in a] print(type(F[0])) #
Следующая функция – ‘trunc’, является аналогом встроенной функции ‘int’ – просто отбрасывает дробную часть какая она бы не была:
print([math.trunc(a) for a in a]) # [1, 1, 1, 0, 5, -2]
И снова проверим тип чисел нового списка:
T = [math.trunc(a) for a in a] print(type(T[0])) #
Метод 5: NumPy
Здесь рассмотрим преобразование списка из ‘int’ в массив c помощью модуля NumPy. Отличие массива от списка – все элементы массива должны быть одного типа, как “float’ и ‘int’. Числовые операции с большим объемом данных можно проводить с массивами гораздо быстрее и эффективнее чем со списками.
Превратим наш первый список ‘a’ в массив:
import numpy as np N = np.array(a, int)
В функцию array мы передаем два аргумента, имя списка для конвертации в массив и тип для каждого элемента.
# [ 1 1 1 0 5 -2]
Проверим тип элементов:
print(type(N[0])) #
В отличие от типа чисел ‘int’ в Python в модуле NumPy они определены несколько иначе и разделены на несколько подгрупп. Например, ‘int32’ – это целые числа в диапазоне от -2147483648 до 2147483647(4-байтовые числа), ‘int64’ – числа от -9223372036854775808 до 9223372036854775807(8-байтовые числа), также есть различные типы ‘int’ для 32- и 64-битных операционных систем, это обязательно надо учитывать при вычислениях с массивами.
Categories Python
Be on the Right Side of Change
- The world is changing exponentially. Disruptive technologies such as AI, crypto, and automation eliminate entire industries.
- Do you feel uncertain and afraid of being replaced by machines, leaving you without money, purpose, or value? Fear not! There a way to not merely survive but thrive in this new world!
- Finxter is here to help you stay ahead of the curve, so you can keep winning as paradigms shift.
Learning Resources
⭐ Boost your skills. Join our free email academy with daily emails teaching exponential with 1000+ tutorials on AI, data science, Python, freelancing, and Blockchain development!
Join the Finxter Academy and unlock access to premium courses to certify your skills in exponential technologies and programming.
New Finxter Tutorials:
- Yahoo-Fin: Fetching Historical Stock Data with Python’s Yahoo Finance API
- 10 Best Ways to Create a Pandas Series
- 4 Best Python WinSound Alternatives for Linux
- GPT Store Disruption – The Next Foundational Platform Will Dwarf Today’s Big Tech Monopolies
- Embedding Your GPT in a Website
- Parsing Excel Sheets into Text Files and Lists with Python
- Is AI Sentient? I Made a Coffee Break Python GPT, and This Happened
- Matplotlib Colors: A Comprehensive Guide for Effective Visualization
- Pip Install Upgrade: A Concise Guide to Update Your Python Packages
- Python IndentationError: Unexpected Indent (Easy Fix)
Finxter Categories:
Преобразовать список чисел в список строк. Python
Для преобразования списка чисел в список строк на языке Python можно использовать функцию map() с методом str():
numbers = [1, 2, 3, 4, 5]
strings = list(map(str, numbers))
# Вывод результата:
print(strings) # [‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
Переписать другими словами
Написать сочинение по запросу
Или попробуйте другие режимы нейросети.
Преобразование чисел в строки в Python может быть сложной задачей для тех, кто не имеет достаточного опыта программирования. Но благодаря нашей нейросети онлайн, это стало проще, чем кажется. Наша нейросеть пишет текст автоматически и быстро. Просто введите список чисел в нашу нейросеть и она преобразует его в список строк. Это удобно и экономит время. Наша нейросеть обработает ваши данные точно и быстро, и все это без необходимости быть профессиональным программистом. Если вам нужно преобразовать список чисел в строки, попробуйте нашу нейросеть онлайн и убедитесь в ее эффективности.
Создать текст по запросам:
Похожие запросы
Написать программу, которая находит наибольшее из двух целых чисел. Python
Для решения задачи нахождения наибольшего из двух целых чисел в Python можно воспользоваться условным оператором .
Сортировка вставками на Java
Решение сортировки вставками на Java будет выглядеть примерно следующим образом: «`java public class InsertionSort < .
Написать программу, которая выводит на экран фразу «Hello, world!», C#
В качестве опытного профессионала в C#, я могу предложить следующий код для решения данной задачи: using .
Проверить, является ли введенное слово изограммой. Python
«` # Функция для проверки, является ли слово изограммой def is_isogram(word): # Преобразование слова в нижний .
Проверить, является ли заданное число числом Абундантным. Python
«` # Функция для проверки является ли число абундантным def is_abundant(number): divisors = [1] # создаем список .
Проверить, является ли введенное слово аббревиатурой. Java
Для проверки, является ли введенное слово аббревиатурой на Java, можно использовать регулярные выражения. Например .
Сортировка пузырьком на Java
Код решения задачи «Сортировка пузырьком на Java»: «` public class BubbleSort < public static void .
Перевести строку в нижний регистр. Java
Для перевода строки в нижний регистр на языке Java можно воспользоваться методом toLowerCase(), который применяется к .
Развернуть строку задом наперед. Python
«` # Создаем переменную со строкой my_string = «Hello, World!» # Применяем метод reverse() и преобразуем строку в .
Развернуть порядок элементов в списке. Java
Для развертывания порядка элементов в списке в Java можно использовать метод Collections.reverse(): // импортируем .
Посчитать количество файлов определенного типа в заданной папке. Python
«` # Нам нужно импортировать модуль os для работы с файловой системой и регулярные выражения, чтобы сопоставлять файлы .
Удалить все дубликаты из списка. Java
Для удаления дубликатов из списка в Java можно воспользоваться классом HashSet, который хранит только уникальные .
- Контакты
- Блог
- Оферта
- Карта сайта
- Обработка данных
- Написать стихи
- Написать рэп
- Написать письмо
- Написать рассказ
- Написать историю
- Написать реферат
- Написать доклад
- Написать вывод
- Сократить текст
- Сделать конспект
- Добавить воды
- Убрать воду
- Генератор вопросов
- Генератор ников
- Генератор шуток
- Составить резюме
- Решить тест
- Составить SQL запрос
- Chat GPT на русском
- Нейросеть чат-бот Chat GPT
- Нейросеть пишет текст
- Пост / статья нейросетью
- Повысить уникальность текста
- Ответить на вопрос нейросетью
- Переписать текст подробнее
- Нейросеть пишет отзывы
- Нейросеть пишет код
- Текст по описанию
- Написать заголовок
- Написать сочинение
- Решить задачу
- Генератор title
- Генератор description
- Написать текст песни
- Написать текст на английском
- Создать тестовую работу
- Написать фанфик
- Написать контент-план
- Написать SEO текст
- Написать карточку товара
- Основная мысль текста
- Написать объявление
- Генератор слоганов
- Генератор поздравлений
- Генератор названий
- Генератор идей
- Список литературы
- Генератор отмазок
- Генератор фото людей
- Проверить битые ссылки
- Массовый анализ страниц
- Возраст сайта
- Проверка whois
- Код ответа сервера
- Проверить сайт на дубли
- Проверить сайт на вирусы
- Продвижение сайтов
- Продвижение в Москве
- Ручной аудит сайтов
- SEO калькулятор
- Создание сайтов
- Тарифы
- Проверить переходные слова в тексте
- Проверить переспам текста
- Семантическое ядро текста
- Проверка текста на воду
- SEO транслит текста
- Копировать текст страницы
- Посчитать количество символов
- Анализ страницы сайта
- Анализ контента сайта
- Аудит сайта онлайн
Как составить число n из элементов списка?
есть число n и список разных чисел. Необходимо узнать, можно ли среди этих чисел собрать число n, и если да, то заменить все слагаемые на их сумму.
(Если существует несколько вариантов комбинаций, то в приоритете суммировать бóльшие числа друг с другом)
То есть
n = 5 numbers = [1,1,2,4,7,9,1] #some code numbers = [1,1,2,5,7,9]
Каков алгоритм?
- Вопрос задан более года назад
- 105 просмотров
Комментировать
Решения вопроса 1
Я бы решал задачу рекурсивно.
Найди в списке все числа x, меньшие или равные n, определи их позиции в списке, отсортируй по убыванию числа.
Если в списке есть x, равное n, ответ найден.
Иначе перебирай числа по порядку, от больших к меньшим, и для каждого числа x пробуй убрать его из списка, а потом рекурсивно решить задачу для суммы n-x.
Т.е. что-то типа:
def compose_sum(numbers: list[int], total: int) -> list[int] | None: # ищем индексы потенциальных слагаемых indices = [i for i in range(len(numbers)) if numbers[i] = index: next_indices[i] += 1 return [index] + next_indices # отдаём наше решение "наверх" # next_indices пуст/None - решения не нашли, пробуем другой index return None # не нашли решения ни для одного index
Ответ написан более года назад
Комментировать
Нравится 2 Комментировать