Как сделать списки из байтов?
Есть список(b) со списками в байтах:

Когда делаю так:
d=[]
for i in b:
d.append(list(i))
Выводит списки с другими числами.
- Как сделать обычный список со списками?
- Возможно ли это сделать быстрее, не используя циклы?
Update. Имеется:
b=[b'0,196.20000000,0.05100000,10.00620000,1628668800000,False,True\n',
b'1,298.80000000,6.69300000,1999.86840000,1628668800144,False,True\n',
b'2,298.80000000,0.15000000,44.82000000,1628668800163,False,True\n',
b'3,288.00000000,129.48000000,37290.24000000,1628668800199,False,True\n',
b'4,298.80000000,53.94600000,16119.06480000,1628668800199,False,True\n',
b'5,300.00000000,50.00000000,15000.00000000,1628668800199,False,True\n',
b'6,320.00000000,62.40000000,19968.00000000,1628668800199,False,True\n',
b'7,344.00000000,176.21700000,60618.64800000,1628668800199,False,True\n',
b'8,450.00000000,94.06600000,42329.70000000,1628668800199,False,True\n',
b'9,450.00000000,0.11200000,50.40000000,1628668800220,False,True\n']
А нужно:
[[0,196.20000000,0.05100000,10.00620000,1628668800000,False,True],
[1,298.80000000,6.69300000,1999.86840000,1628668800144,False,True],
[2,298.80000000,0.15000000,44.82000000,1628668800163,False,True],
[3,288.00000000,129.48000000,37290.24000000,1628668800199,False,True],
[4,298.80000000,53.94600000,16119.06480000,1628668800199,False,True],
[5,300.00000000,50.00000000,15000.00000000,1628668800199,False,True],
[6,320.00000000,62.40000000,19968.00000000,1628668800199,False,True],
[7,344.00000000,176.21700000,60618.64800000,1628668800199,False,True],
[8,450.00000000,94.06600000,42329.70000000,1628668800199,False,True],
[9,450.00000000,0.11200000,50.40000000,1628668800220,False,True]]
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Если у вас действительно большой объем данных, возможно вам подойдет векторизованное решение от pandas? Правда, мое решение кажется мне неуклюжим и я не уверен, что оно будет сильно эффективнее других.
import pandas as pd
import numpy as np
b=[b'0,196.20000000,0.05100000,10.00620000,1628668800000,False,True\n',
b'1,298.80000000,6.69300000,1999.86840000,1628668800144,False,True\n',
b'2,298.80000000,0.15000000,44.82000000,1628668800163,False,True\n',
b'3,288.00000000,129.48000000,37290.24000000,1628668800199,False,True\n',
b'4,298.80000000,53.94600000,16119.06480000,1628668800199,False,True\n',
b'5,300.00000000,50.00000000,15000.00000000,1628668800199,False,True\n',
b'6,320.00000000,62.40000000,19968.00000000,1628668800199,False,True\n',
b'7,344.00000000,176.21700000,60618.64800000,1628668800199,False,True\n',
b'8,450.00000000,94.06600000,42329.70000000,1628668800199,False,True\n',
b'9,450.00000000,0.11200000,50.40000000,1628668800220,False,True\n']
a = pd.DataFrame([x.rstrip().split(b",") for x in b])
res = a.apply(pd.to_numeric, errors='ignore')
res[res.select_dtypes('object').columns] = res.select_dtypes('object').apply(lambda x: x.map({b'True':True, b'False':False}))
result = res.values.tolist()
result
[[0, 196.2, 0.051, 10.0062, 1628668800000, False, True],
[1, 298.8, 6.693, 1999.8684, 1628668800144, False, True],
[2, 298.8, 0.15, 44.82, 1628668800163, False, True],
[3, 288.0, 129.48, 37290.24, 1628668800199, False, True],
[4, 298.8, 53.946, 16119.0648, 1628668800199, False, True],
[5, 300.0, 50.0, 15000.0, 1628668800199, False, True],
[6, 320.0, 62.4, 19968.0, 1628668800199, False, True],
[7, 344.0, 176.217, 60618.648, 1628668800199, False, True],
[8, 450.0, 94.066, 42329.7, 1628668800199, False, True],
[9, 450.0, 0.112, 50.4, 1628668800220, False, True]]