Je veux essentiellement un équivalent python de ceci en C:
int a[x];
mais en python je déclare un tableau comme:
a = []
et le problème est que je veux attribuer des emplacements aléatoires avec des valeurs telles que:
a[4] = 1
mais je ne peux pas faire cela avec python, car le tableau est vide.
python
arrays
dynamic-arrays
user299648
la source
la source
a = [obj] * N
est que le même obj apparaît dans chaque élément du tableau. S'il s'agit d'un objet mutable et que vous modifiez un élément, tout sera changé. ... Mais, pour cet exemple utilisant des entiers (ou tout autre type immuable), cela ne fait aucune différence. Ou, si vous n'attribuez que des éléments, ce n'est pas non plus un problème. (Je le mentionne parce que je l'ai fait exactement trop souvent :))Vous ne pouvez pas faire exactement ce que vous voulez en Python (si je vous lis correctement). Vous devez mettre des valeurs pour chaque élément de la liste (ou comme vous l'avez appelé, tableau).
Mais, essayez ceci:
Pour les listes d'autres types, utilisez autre chose que 0.
None
est souvent également un bon choix.la source
range(N)
produira déjà une liste si Python <3.0.xrange(N)
Python 2.x. Cependant, je ne suis pas sûr de savoir comment cela est à la limite du incorrect. Je préfère celaa = range(N)
parce que chaque élément commence par un "défaut" sensible. Je suppose que c'est une question d'opinion.Vous pouvez utiliser numpy:
Exemple à partir d'un tableau vide :
la source
Déclarez simplement la liste et ajoutez chaque élément. Par exemple:
la source
vous pouvez également étendre cela avec la méthode d'extension de la liste.
la source
Si vous (ou d'autres chercheurs de cette question) étiez réellement intéressé par la création d'un tableau contigu à remplir avec des entiers, considérez bytearray et memoryivew :
la source
la source
Si vous voulez réellement un tableau de style C
Notez qu'il n'y a pas de concept de variable non initialisée en python. Une variable est un nom lié à une valeur, donc cette valeur doit avoir quelque chose. Dans l'exemple ci-dessus, le tableau est initialisé avec des zéros.
Cependant, cela est rare en python, sauf si vous en avez réellement besoin pour des choses de bas niveau. Dans la plupart des cas, il est préférable d'utiliser une liste vide ou un tableau numpy vide, comme le suggèrent d'autres réponses.
la source