Как сделать списки из байтов?

Есть список(b) со списками в байтах: введите сюда описание изображения

Когда делаю так:

d=[]
for i in b:
    d.append(list(i))

Выводит списки с другими числами.

  1. Как сделать обычный список со списками?
  2. Возможно ли это сделать быстрее, не используя циклы?

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]]
→ Ссылка