Ich möchte ein Array mit X zweidimensionalen Elementen initialisieren. Wenn zum Beispiel X = 3 ist, möchte ich, dass es [[0,0], [0,0], [0,0]] ist. Ich weiß, dass [0] * 3 [0, 0, 0] ergibt, aber wie mache ich das für zweidimensionale Elemente?Wie initialisiere ich ein eindimensionales Array von zweidimensionalen Elementen in Python?
Antwort
Try this:
m = [[0] * 2 for _ in xrange(3)]
In dem obigen Code, man denke an die 3
als die Anzahl der Zeilen in einer Matrix, und die 2
als die Anzahl der Spalten. Der Wert 0
ist der Wert, den Sie zum Initialisieren der Elemente verwenden möchten. Beachten Sie Folgendes: Wenn Sie Python 3 verwenden, verwenden Sie range
anstelle von xrange
.
Für eine allgemeinere Lösung, verwenden Sie diese Funktion:
def create_matrix(m, n, initial=0):
return [[initial] * n for _ in xrange(m)]
Für den besonderen Fall der Frage:
m = create_matrix(3, 2)
print m
> [[0, 0], [0, 0], [0, 0]]
Alternativ und wenn Sie nicht numpy
nichts dagegen tun verwenden, können Sie Verwenden Sie die numpy.zeros()
Funktion wie in Mellkor's Antwort gezeigt.
Ich glaube, dass es [[0,0],]*3
Die Art, wie es funktioniert, ist, dass es das Zeug innerhalb der Liste als Liste zu sich selbst mehrfach hinzufügt, im Wesentlichen ist [[0,0],] + [[0,0],] + [[0,0],] –
Es scheint auch ohne das nachgestellte Komma zu funktionieren. – Interrobang
Das macht eine Liste mit drei Referenzen auf die gleiche Liste, also ist es nicht das gleiche wie '[[0,0],] + [[0,0],] + [[0,0],]'. Versuchen Sie, eines der Elemente zu ändern, und Sie werden sehen, dass sich alle drei Unterlisten ändern. – DSM
Ich denke, numpy.zeros ist nützlich für solche. Sprich:
x=4
numpy.zeros((x,x))
geben Ihnen:
Array ([[0, 0, 0, 0], [0, 0, 0, 0] , [0, 0, 0, 0], [0, 0, 0, 0]])
Verwendung des Konstrukts
[[0,0]]*3
funktioniert gut und gibt folgende Möglichkeiten:
[[0, 0], [0, 0], [0, 0]]
- 1. PHP Wie ein eindimensionales Array in zweidimensionalen
- 2. Wie bekomme ich ein eindimensionales Array aus einem zweidimensionalen Array in PHP/Laravel?
- 3. von eindimensionalen zweidimensionalen Array
- 4. Initialisiere ein numpy Array
- 5. Eindimensionales Array aus einem Multidimension-Array extrahieren
- 6. Wie initialisiere ich ein mehrdimensionales Array von Objekten in TypeScript?
- 7. Wie initialisiere ich ein globales Array von Strukturen in D?
- 8. Wie initialisiere ich elegant ein Array von std :: atomic?
- 9. Wie suche ich in einem zweidimensionalen Array?
- 10. Wie initialisiere ich ein Array in einer Struktur
- 11. Typahead, das ein eindimensionales Array sein muss
- 12. Wie eine zweidimensionale Anordnung in ein eindimensionales Array konvertieren
- 13. Python: korrekte Position von Peaks in einem zweidimensionalen Array?
- 14. Treat eindimensionales Array als zweidimensionale
- 15. Algorithmus zum Konvertieren eines mehrdimensionalen Arrays in ein eindimensionales Array
- 16. Wie kann ich ein Intervall von Elementen in einem Array in Python/Numpy summieren?
- 17. Initialisiere ein leeres Array von Tupeln in Julia
- 18. Wie initialisiere ich einen Vektor mit einem Array von Werten?
- 19. Initialisiere ein Objekt mit einem Array
- 20. Wie initialisiere ich dieses Array von Arrays innerhalb einer Struktur?
- 21. Schreiben von zweidimensionalen Array in Datei und Lesen von zweidimensionalen Array aus Datei mit Visual C++
- 22. Wie erhält man ein Array von Permutationen von Array-Elementen?
- 23. Wie man ein Objekt in ein eindimensionales Array schiebt und wie man ein einzelnes Element in einem Array mit ember.js
- 24. Wie indexiere ich ein Array zu einer Gruppe von Elementen?
- 25. Wie entferne ich Platzhalterwerte aus einem zweidimensionalen Array in Java?
- 26. Wie deklariere ich ein Array in Python
- 27. Wie kann ich ein zweidimensionales Array anderen temporären zweidimensionalen Array zuweisen? in C Programmierung
- 28. Wie initialisiere ich ein const std :: pair?
- 29. Initialisiere ein Python-Objekt über die Kommandozeileneingabe
- 30. Spleißen zweidimensionalen PHP-Array
Die meiste Zeit in Python, wenn Sie in Bezug auf die „Initialisierung“ einen Behälter zu einem Bündel von 0s denken, sie es falsch machen. –
Nun, ich übe für Google Code Jam und ich muss in einem Strom von Zahlen wie 2, 3, 1, 4, 5, 2 lesen und es in [[2,3], [1,4], [5,2]]. Was würdest du sonst noch vorschlagen? – Kobi
Ich würde vorschlagen, die Nummern an leere Listen anzufügen, wie sie empfangen werden. –