Уведомления

Группа в Telegram: @pythonsu

#1 Май 29, 2014 22:20:02

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

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

P.S. Budulianin намекнул, что если Вы готовите данные одним скриптом и знаете как, то легче переработать выход данных из него и согласовать его таким образом, чтобы в питоне обрабатывать можно было легко и непринужденно.

Офлайн

#2 Май 29, 2014 22:26:36

alexan1234
Зарегистрирован: 2014-03-22
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

Да? адекватные, это поди те, кто спрашивает как пользоваться командой Print? или другие очевидности?

Офлайн

#3 Май 29, 2014 22:30:30

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

alexan1234
Если честно, то я такие вопросы как Ваш прохожу вообще мимо ввиду их полной простоты. Не представляют для меня интереса вообще.
Сейчас зашел, так как в моей любимой ветке вопросов вообще кот наплакал.

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

Плюс грубость здесь не в почете. Здесь не такая цензура как на киберфоруме, но все же…

Отредактировано 4kpt_II (Май 29, 2014 22:31:54)

Офлайн

#4 Май 29, 2014 22:34:23

alexan1234
Зарегистрирован: 2014-03-22
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

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

Офлайн

#5 Май 29, 2014 22:39:46

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

alexan1234
адекватные, это поди те, кто спрашивает как пользоваться командой Print? или другие очевидности?

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

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

Для начинающих говнокодеров проблема.



Офлайн

#6 Май 29, 2014 22:40:06

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

На самом деле здесь масса способов. И Вам пытаются помочь найти самый простой и самый правильный. Как в бритве Оккама. Есть еще способ с использованием eval. Он вообще прост. Но нужно быть уверенным в исходных данных. Правильно было бы файл выложить. Но могут уже не помочь ввиду плохого поведения

Офлайн

#7 Май 29, 2014 23:09:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

alexan1234
Нет, в файле не JSON строки эт точно.. я ж сам его создал)в другом скрипте. и скобочки тоже получается сам создал

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

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

Это для начала подойдёт, но потом надо серьёзно разбирать строку, проводят числа через int/float с помощью map().



Офлайн

#8 Май 30, 2014 00:09:00

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

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. человек тут уже психует, видать накипело…



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Май 30, 2014 01:24:52

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

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]
>>>



Прикреплённый файлы:
attachment prog.jpeg (89,8 KБ)

Офлайн

#10 Май 30, 2014 04:45:08

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Перевод строкового типа в численый

py.user.next
Я изначально ошибся в регулярке, нужно \d+. =) бывает..



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version