Найти - Пользователи
Полная версия: Перевод строкового типа в численый
Начало » Python для новичков » Перевод строкового типа в численый
1 2 3
4kpt_II
alexan1234
Не ерепеньтесь. Вам указали, что Вы задаете неоднозначные вопросы. Сядьте. Подумайте. Соберитесь с мыслями и поставьте нормальные вопросы, которые не будут противоречить друг-другу. Ведь тут как в физике в школе: “правильно записанная задача - 70% ее решения”

P.S. Budulianin намекнул, что если Вы готовите данные одним скриптом и знаете как, то легче переработать выход данных из него и согласовать его таким образом, чтобы в питоне обрабатывать можно было легко и непринужденно.
alexan1234
Да? адекватные, это поди те, кто спрашивает как пользоваться командой Print? или другие очевидности?
4kpt_II
alexan1234
Если честно, то я такие вопросы как Ваш прохожу вообще мимо ввиду их полной простоты. Не представляют для меня интереса вообще.
Сейчас зашел, так как в моей любимой ветке вопросов вообще кот наплакал.

Адекватность оценивается умением правильно формировать вопросы и правильно поддерживать процесс поиска ответа на них.
Можно представить такой алгоритм:
1. Исходные данные.
2. Результат.
3. Пробую так мол и так.

Плюс грубость здесь не в почете. Здесь не такая цензура как на киберфоруме, но все же…
alexan1234
4kpt_II
alexan1234Не ерепеньтесь. Budulianin намекнул, что если Вы готовите данные одним скриптом и знаете как, то легче переработать выход данных из него и согласовать его таким образом, чтобы в питоне обрабатывать можно было легко и непринужденно.
Над этим я в первую очередь думал. В другом варианте у меня данные сохранялись без разделителей между значениями. Без кавычек, без точек, без пробелов.. без ничего.. Уж лучше так))
Вот не учто в великом и могучем питоне, такая проблема, преобразовать строки в массив чисел??
Я уж и в цикле пробовал обращаться по индексу, и не в цикле. И квадратные скобки убирал..
Budulianin
alexan1234
адекватные, это поди те, кто спрашивает как пользоваться командой Print? или другие очевидности?

Твой вопрос на уровне print

alexan1234
Вот не учто в великом и могучем питоне, такая проблема, преобразовать строки в массив чисел??

Для начинающих говнокодеров проблема.
4kpt_II
На самом деле здесь масса способов. И Вам пытаются помочь найти самый простой и самый правильный. Как в бритве Оккама. Есть еще способ с использованием eval. Он вообще прост. Но нужно быть уверенным в исходных данных. Правильно было бы файл выложить. Но могут уже не помочь ввиду плохого поведения
py.user.next
alexan1234
Нет, в файле не JSON строки эт точно.. я ж сам его создал)в другом скрипте. и скобочки тоже получается сам создал

alexan1234
Так как я еще весьма начинающии говнокодер

Значит, обратная операция - eval()

Это для начала подойдёт, но потом надо серьёзно разбирать строку, проводят числа через int/float с помощью map().
JOHN_16
alexan1234
Ну раз у вас прям так не получается, через регулярки и встроенную функцию filter:
>>> s="['12','1','5','7','0','9']"
>>> import re
>>> s1=re.findall('\d*', s)
>>> s1
['', '', '12', '', '', '', '1', '', '', '', '5', '', '', '', '7', '', '', '', '0', '', '', '', '9', '', '', '']
>>> [int(x) for x in filter(None, s1)]
[12, 1, 5, 7, 0, 9]

Через простой парсинг, показываю поэтапно
>>> s
"['12','1','5','7','0','9']"
>>> s.strip('[]')
"'12','1','5','7','0','9'"
>>> [int(x.strip('\'')) for x in s.strip('[]').split(',')]
[12, 1, 5, 7, 0, 9]

P.S. человек тут уже психует, видать накипело…
py.user.next
JOHN_16
через регулярки и встроенную функцию filter
filter() - это лестница к построенной стене

>>> import re
>>> 
>>> s = "['12','1','5','7','0','9']"
>>> 
>>> list(map(int, re.findall(r'\d+', s)))
[12, 1, 5, 7, 0, 9]
>>>

JOHN_16
py.user.next
Я изначально ошибся в регулярке, нужно \d+. =) бывает..
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB