web-dev-qa-db-fra.com

Conversion de la liste de tableaux en liste de listes?

Après quelques opérations complexes, une liste résultante est obtenue, par exemple list1, qui est une liste de différents tableaux.

Voici la list1

In [] : list1
Out [] : 
       [array([ 10.1]),
        array([ 13.26]),
        array([ 11.0 ,  12.5])]

Vouloir convertir cette liste en liste simple et non en tableaux

Attendu list2

      [ [ 10.1],
        [ 13.26],
        [ 11.0 ,  12.5] ]

S'il vous plaît laissez-moi savoir si quelque chose n'est pas clair.

5
Liza

Vous pouvez utilisertolist()dans une liste de compréhension:

>>> [l.tolist() for l in list1]
[[0.0], [0.0], [0.0, 0.5], [0.5], [0.5], [0.5, 0.69], [0.69, 0.88], [0.88], [0.88], [0.88], [0.88, 1.0], [1.0, 1.1], [1.1], [1.1], [1.1], [1.1, 1.5], [1.5, 2.0], [2.0], [2.0]]
6
Vinícius Aguiar

Il suffit d'appeler ndarray.tolist() sur chaque tableau de membres. 

l = [arr.tolist() for arr in l]

Cela devrait être plus rapide que de construire un tableau NumPy au niveau externe puis d'appeler .tolist()

6
miradulo

Que diriez-vous d'une compréhension simple liste :

list1 = [list(x) for x in list1]
3
Moses Koledoye

Utilisez tolist():

import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
1
user4312643
new_list = list(map(list,old_list))

Vous pouvez utiliser la fonction map comme ci-dessus. Vous pouvez voir le résultat ci-dessous:

In[12]: new_list = list(map(list,old_list))

In[13]: new_list

Out[13]: 
[[0.0],
 [0.0],
 [0.0, 0.5],
 [0.5],
 [0.5],
 [0.5, 0.68999999999999995],
 [0.68999999999999995, 0.88],
 [0.88],
 [0.88],
 [0.88],
 [0.88, 1.0],
 [1.0, 1.1000000000000001],
 [1.1000000000000001],
 [1.1000000000000001],
 [1.1000000000000001],
 [1.1000000000000001, 1.5],
 [1.5, 2.0],
 [2.0],
 [2.0]]
0
whackamadoodle3000