以下是使用 numpy 的方法:
In [96]: l1=[0, ['0.2000', '0.2000', '3.0000', '0.5000']]
In [97]: l2=np.array(tuple(l1),dtype=[('f1','int'),('f2','float',4)])
In [98]: l2
Out[98]:
array((0, [0.20000000000000001, 0.20000000000000001, 3.0, 0.5]),
dtype=[('f1', '<i4'), ('f2', '<f8', 4)])
如果您的实际列表看起来更像这样:
In [99]: l3=[0, ['0.2000', '0.2000', '3.0000', '0.5000'], 1, ['.1','.2','.3','0.4']]
然后您可以使用 grouper 成语 zip(*[iter(l3)]*2)) 将每 2 个元素分组为一个元组:
In [104]: zip(*[iter(l3)]*2)
Out[104]: [(0, ['0.2000', '0.2000', '3.0000', '0.5000']), (1, ['.1', '.2', '.3', '0.4'])]
并将其传递给np.array:
In [105]: l4=np.array(zip(*[iter(l3)]*2),dtype=[('f1','int'),('f2','float',4)])
In [106]: l4
Out[106]:
array([(0, [0.20000000000000001, 0.20000000000000001, 3.0, 0.5]),
(1, [0.10000000000000001, 0.20000000000000001, 0.29999999999999999, 0.40000000000000002])],
dtype=[('f1', '<i4'), ('f2', '<f8', 4)])