2 Stimmen

Wie erstellt man ein 2D-Array in Python, wenn man die Anzahl der Zeilen kennt und die Anzahl der Spalten von einer Bedingung abhängt?

Mein Array maximale Dimension könnte 2x27 sein, aber Anzahl der Spalten könnte niedriger als 27 sein. Anzahl der Spalten hängt von einigen condition.is gute Lösung zu initialisieren Array 2x27 und dann unnötige Spalten löschen oder hat eleganter Weg, dies zu tun?

3voto

Alex Martelli Punkte 805329

Nein, es macht keinen besonderen Sinn, ein größeres Array zu erstellen und dann einen Teil davon zu entfernen - erstellen Sie einfach, was Sie brauchen. Vorausgesetzt, dass Sie mit "2d-Array" eigentlich "Liste von Listen" meinen:

def makarray(value, nrows, ncols):
  return [[value]*ncols for _ in range(nrows)]

1voto

Hamish Grubijan Punkte 10258

Für so wenige Elemente verwenden Sie ein Wörterbuch mit Tupeln als Schlüssel:

dct = {}
dct[(0,0)] = 'X'
if (10,10) in dct:
    dct[(10,10)] += 1
else:
    dct[(10,10] = 0
# Deleting a row / column
dct.pop((10,0))
dct.pop((10,1))
...
dct.pop((10,10))

Wörterbücher sind sehr flexibel.

Alternativ können Sie auch ein Numpy-Array verwenden.

1voto

Jesse Aldridge Punkte 7601

Hier ist eine einfache Möglichkeit, dies zu tun:

num_rows, num_cols = 2, 27
table = []

for r in range(num_rows):
    row = []
    table.append(row)
    for c in range(num_cols):
        row.append(c)

print table

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X