Ich habe ein 2D-Array, ich möchte eine Spalte auf einen bestimmten Wert setzen, mein Code ist darunter. Ist das der beste Weg in Python?
%Vor%Wenn ich eine Anzahl von Spalten auf einen bestimmten Wert setzen möchte, wie könnte ich das erweitern
Ich möchte nur die Python-Standardbibliothek verwenden
Danke
Eine bessere Lösung wäre:
%Vor% Für die Werte von cols = 2
, rows = 3
würden wir erhalten:
Dann können Sie wie folgt darauf zugreifen:
%Vor%Was zu:
führt %Vor%Oder je mehr Pythonic (Danke J.F. Sebastian):
%Vor% Paket NumPy bietet ein leistungsstarkes N-dimensionales Array-Objekt. Wenn data
ein numpy
-Array ist, dann setze set_col
-Spalte auf val
value:
Vollständiges Beispiel:
%Vor% Mit der Art, wie Sie es verwenden, ist nichts falsch, außer dass es einfacher wäre, die Variable set_col
als set_row
zu benennen, da Sie eine Spalte setzen.
Legen Sie also eine Anzahl von Spalten fest, umschließen Sie sie einfach mit einer anderen Schleife:
%Vor%Aber ein Problem: Ihr 2D-Array ist insofern ungewöhnlich, als es in einem 1D-Array gepackt ist (Python kann 2D-Arrays auch über Listen von Listen unterstützen), also würde ich alles mit Methoden oder Funktionen umhüllen.
In Ihrem Fall sind Zeilen und Spalten wahrscheinlich austauschbar, d. h. es ist eine Frage der Semantik, welche welche ist. Wenn dies der Fall ist, können Sie Spalten erstellen, um die Reihenfolge der Zellen in data
list zu belegen und sie dann mit nur:
Eine frühere Antwort hat eine range
weggelassen, so dass Sie Folgendes versuchen könnten:
Um dies auf eine Anzahl von Spalten zu erweitern, könnten Sie die Spaltennummer und ihren Wert in dict
speichern. Um also die Spalten 5 bis 10 und 2 bis 7 zu setzen:
Durch den Austausch der Zeilen und Spalten, wie in einer anderen Antwort vorgeschlagen, wird dies etwas einfacher:
%Vor%Tags und Links python multidimensional-array