В настоящее время я ищу простой способ преобразования строки с помощью разделенных запятыми значений "[2323,1231.1,123123.2 ,21 ... ,2131]"
в список значений или numpy.array значения. Я хочу, чтобы это было сделано максимально эффективно, есть ли команда python, которая может делать то, что я хочу?Сохраните строку значений для отображения значений?
0
A
ответ
3
Да, ast.literal_eval
может это сделать:
>>> import ast
>>> ast.literal_eval("[2323,1231.1,123123.2 ,21 ,2131]")
[2323, 1231.1, 123123.2, 21, 2131]
0
ast
что @wim предположить, вероятно, лучший выбор; но есть несколько альтернатив:
In [2036]: txt="[2323,1231.1,123123.2 ,21 ,2131]"
AST
In [2038]: ast.literal_eval(txt)
Out[2038]: [2323, 1231.1, 123123.2, 21, 2131]
JSON
In [2039]: import json
In [2040]: json.loads(txt)
Out[2040]: [2323, 1231.1, 123123.2, 21, 2131]
прямые
In [2045]: [float(i) for i in txt[1:-1].split(',')]
Out[2045]: [2323.0, 1231.1, 123123.2, 21.0, 2131.0]
раз:
In [2043]: timeit ast.literal_eval(txt)
10000 loops, best of 3: 37.7 µs per loop
In [2044]: timeit json.loads(txt)
100000 loops, best of 3: 9.57 µs per loop
In [2046]: timeit [float(i) for i in txt[1:-1].split(',')]
100000 loops, best of 3: 5.02 µs per loop
С разными текстами относительные тайминги могут быть разными; способность обрабатывать отклонения от строкового отображения списка может отличаться.
Для удобства и устранения MATLAB np.matrix
также может разбирать строку; но результат 2d и медленнее
In [2047]: np.matrix(txt)
Out[2047]:
matrix([[ 2.32300000e+03, 1.23110000e+03, 1.23123200e+05,
2.10000000e+01, 2.13100000e+03]])
In [2048]: timeit np.matrix(txt)
10000 loops, best of 3: 184 µs per loop
np.array
также может обрабатывать список строк:
In [2050]: np.array(txt[1:-1].split(','),float)
Out[2050]:
array([ 2.32300000e+03, 1.23110000e+03, 1.23123200e+05,
2.10000000e+01, 2.13100000e+03])
In [2051]: timeit np.array(txt[1:-1].split(','),float)
...
100000 loops, best of 3: 9.03 µs per loop
1
string_list = '[2323, 2324,2325,2326]'
list_numbers = json.loads(string_list)
просто!
Смежные вопросы
- 1. Форматирование двойных значений для отображения
- 2. Для отображения значений переменных используются
- 3. Преобразователь отображения значений для ASP.MVC
- 4. Формула для отображения нескольких значений
- 5. jQuery цикл через таблицу для отображения значений
- 6. Группы отображения постоянных значений
- 7. Ошибка отображения значений
- 8. Как использовать listAdapter для отображения значений массива значений Json
- 9. XML для xml для эффективного отображения значений
- 10. Использование Ajax для отображения значений асинхронной функции
- 11. Как использовать объединение для отображения свернутых значений
- 12. Html.ListBoxДля отображения значений после отображения: нет
- 13. SQL заявление для отображения уникальных значений
- 14. Как получить список для отображения значений C#
- 15. Формирование значений даты для отображения в Can.js
- 16. Использование словаря для отображения значений в VIEW
- 17. Использование возврата для отображения нескольких значений
- 18. Используйте массив для отображения уникального набора значений
- 19. Принудительный пистолет для отображения фактических значений оси
- 20. Получение значений из большого JSON для отображения
- 21. Как использовать фильтр для отображения входных значений?
- 22. Clojure применить функцию преобразования для значений отображения
- 23. Как использовать Parallel.ForEach для отображения значений IDictionary?
- 24. Обработка значений для отображения в SSRS
- 25. SQL Query для отображения противоположных значений
- 26. SQL-запрос - сравнение значений для отображения доступности
- 27. Функция Chaincode для отображения значений структуры
- 28. SQL-запрос для выбора значений таблицы отображения?
- 29. Присвоение значений для отображения элементов в Python
- 30. Общее решение для отображения значений в массив