Pour les calculs, utilisez numpy comme ceci :
import numpy as np
a = np.ones((3,2)) # a 2D array with 3 rows, 2 columns, filled with ones
b = np.array([1,2,3]) # a 1D array initialised using a list [1,2,3]
c = np.linspace(2,3,100) # an array with 100 points beteen (and including) 2 and 3
print(a*1.5) # all elements of a times 1.5
print(a.T+b) # b added to the transpose of a
Ces tableaux numpy peuvent être sauvegardés et chargés depuis le disque (même compressés) et les calculs complexes avec de grandes quantités d'éléments sont rapides comme du C. Très utilisé dans les environnements scientifiques. Voir ici pour plus...
136 votes
Pour une raison insondable, Python appelle les tableaux "listes". L'école de conception des langages "tout le monde sait comment ça s'appelle, alors on va l'appeler autrement". C'est un nom particulièrement mal choisi, car il ressemble plus à une liste chaînée qu'à un tableau.
46 votes
@Glenn Maynard : probablement parce que dans les langages de type C, les tableaux sont de longueur fixe alors que les listes Python ne le sont pas. Cela ressemble plus au vecteur STL en C++ ou à ArrayList en Java.
137 votes
On l'appelle une liste, parce que c'est une liste. [A(), 1, 'Foo', u'öäöäö', 67L, 5.6]. Une liste. Un tableau est "un arrangement d'éléments à des adresses équidistantes dans la mémoire d'un ordinateur" (wikipedia).
3 votes
De plus, les listes peuvent avoir un contenu hétérogène, alors que les tableaux des autres langages exigent généralement que tous les éléments soient du même type.
39 votes
Rien dans le terme universellement compris de "tableau" ne suggère une longueur fixe ou quoi que ce soit concernant le contenu ; ce ne sont que des limitations de l'implémentation particulière du C pour les tableaux. Les listes Python sont espacées de manière égale (pointeurs vers des objets, en interne), ou alors
__getitem__
ne serait pas O(1).2 votes
Duplicata : stackoverflow.com/questions/856948/arrays-in-python
1 votes
Glenn : C'est correct, mais c'est un détail d'implémentation.
28 votes
@Glenn, de en.wikipedia.org/wiki/Array_data_structure : "les éléments d'une structure de données de type tableau doivent avoir la même taille" (vrai pour les tableaux de Python, pas vrai pour les listes de Python) et "l'ensemble des tuples d'index valides et les adresses des éléments (et donc la formule d'adressage des éléments) sont généralement fixés pendant l'utilisation du tableau" (pas vrai en Python pour les listes ou les tableaux).
0 votes
@AlexMartelli - Ne sont-ils pas de la même taille ? Tout en Python n'est-il pas toujours un pointeur vers un objet ?