Matrix. Einleitung
Es ist sehr häufig, sich mit tabellarischen Daten zu befassen, wenn es um Informationen geht. Heute ' s Programme arbeiten oft mit solchen Daten. Das einfachste Beispiel ist das Schieduling von Spielen auf einem Käfigbrett: Vernetzer, Schach, Schuh, etc.

In der Mathematik werden solche Strukturen Mathematik genannt.
Matrix - ist ein rechteckiger Tisch, der aus Elementen eines Typs besteht (Schienen, Linien usw.).

Solche Daten in Pitton können in Form von zweidimensionalen Listen (zwei) - Listen gespeichert und verarbeitet werden.
Um die Daten in der Tabelle zu verarbeiten, muss der Zustand jeder Zelle erinnert werden. Jede Zelle hat zwei Zahlen: die Zeilennummer und die Spaltennummer.
In der Matrix weist jedes Element zwei Indizes auf: zuerst wird die Zeilennummer angegeben, dann die Spaltennummer. Die Nummerierung von Zeilen und Spalten beginnt bei Null.
Zum Beispiel Element A[1][2] - dieses Element befindet sich in der zweiten Linie und der dritten Spalte.

Auch, wie bei herkömmlichen Massen (Listen), mit den Matrizen zu arbeiten, ist es notwendig, zu lernen, wie sie zu erstellen, injizieren, zu verarbeiten und abzuschirmen.

Errichtung einer Matrix

Option 1. Strenge Aufgabe der Elemente der Matrix
Sind alle Werte der Matrix bekannt, so kann diese wie folgt aufgezeichnet werden (für die obige Tabelle):
arr = [1, 2, 4, 29]
[3, 4, 6, 1]

oder eine Zeile
arr = [[1, 2, 4, 29], [3, 4, 6, 1]

Der erste Weg ist sichtbarer, besser gelesen und verstanden.
Bitte beachten Sie, dass die Werte der Elemente jeder Zeile in quadratischen Klammern liegen.
Option 2. Erinnerung an eine bestimmte Größe Matrix gefüllt mit einigen Anfangswerten (z.B. Nullen)
NON-VERY MOD (so musst du das nicht tun)
N = 3
M = 2
- Ja.
A = [row] * N # eine Masse(n) aus N Zeile erstellen

So wird es wegen Pythons Eigenschaften falsch funktionieren.
Wenn es eine Notwendigkeit gibt, eine Auszeichnung zu machen A[0][0] = 1das Ergebnis ist, dass alle Elemente der Nullspalte gleich 1 sein werden
Matrixausgang А auf dem Bildschirm von Team print(A) (Sieh es selbst an):
[[1, 0], [1, 0], [1, 0]]

Es ist passiert, weil Matrix ist eine Liste von String-Adressen

Ich meine, den Operator zu machen.
Zeile = [0] * M
Der Compiler erinnert sich an eine einzige Zeile und dann den Operator
A = [row] * N
Erstellt alle Referenzen in A.
Komm schon!
Um die richtige Matrix zu erstellen, ist es notwendig, den Compiler dazu zu zwingen, alle Zeilen im Speicher als verschiedene Objekte zu erstellen. Dies sollte zuerst geschehen, indem eine leere Liste erstellt und dann neue Zeilen im Zyklus mit der Methode hinzugefügt werden append()
Beispiel
N = 3
M = 2
A = [
für i im Bereich(N):
A.Append([0]*M)

Dasselbe kann mit dem Generator geschehen.
N = 3
M = 2
A = [[0]*M für i im Bereich(N) ]


Wiederholen der Matrix mit beliebigen Werten
Sobald die Matrix festgelegt ist, kann sie mit beliebigen Werten gefüllt werden. Da jedes Element zwei Indizes aufweist, sollten die eingeführten Zyklen verwendet werden.
für i im Bereich(N):
für j in range(M):
A[i][j] = ...

Entladung der Matrix auf dem Bildschirm
Option 1. Einfache Weise.

Matrix in einer Zeile

Druck(A)

Weniger: Alle Elemente der Matrix sind in einer Zeile platziert, was es schwierig macht zu verstehen.
Option 2. Tabelle Schlussfolgerung

Zwei Zyklen werden in der Regel verwendet, um die Liste zu bearbeiten und zurückzuziehen. erster Zyklus auf der Zeilennummer, zweiter Zyklus auf den Elementen innerhalb der Zeile.
Um die Matrix scharf auf den Bildschirm zu stellen, indem die Anzahl der Lücken innerhalb einer Zeile geteilt wird, muss ein solches Fragment geschrieben werden:

für i in range(len(A)): # len(A) - gibt die Anzahl der Zeilen in Matrix A zurück
für j in range(len(A[i]): # len(A[i]) - die Anzahl der Elemente in Zeile i zurückgeben
Print(A[i][j, end = '
print() # move to a new line



Gleiche, aber nicht Indexzyklen, sondern Listenwerte (Zyklen) for (Massium)

für Zeile in A: # Wir übernehmen alle Zeilen der Matrix A
für Elem in Reihe: # Wir bewegen alle Elemente in der Zeilenzeile
Print(elem, end = ')
Print()



Eine Zeile kann verwendet werden, um eine Zeile zu entfernenjoin:

für Zeile in A:
print('.join(list(map(str, Zeile)))

Füllen der Matrix mit Tastaturwerten

Lassen Sie das Programm einen Zwei-Quadrat im Eingang bekommen,nLinien jedermMeißel getrennt durch Lücken. Wie zählen Sie sie? Zum Beispiel:

A = [
für i im Bereich(n):
A.append(list(map(int, input().split())) # Methodenliste(n) erstellt eine Liste(n)
# aus dem Datensatz in Klammern

Oder, ohne den Einsatz komplexer Herausforderungen,

A = [
für i im Bereich(n):
Zeile = Eingabe().split() # als Zeile mit Zahlen betrachtet,
# Auf die Proteine gestampft (Empfangsreihe)
für i in range(len(row)):
Zeile[i] = Int(row[i) # Jedes Element der Zeilenliste wurde in Nummer umgewandelt
A.append(row) # die Zeile zu A hinzugefügt

Matrixproben

Jedes Element der Matrix hat zwei Indexe, so dass alle Elemente in einen Zyklus umgewandelt werden müssen.
Üblicherweise wird die Matrix in Zeilen umgewandelt: Der äußere Zyklus wählt die String-Indizes und die internen Spaltenindizes.
Aber wenn nötig können die Matrix und die Spalten verändert werden, dann ändern sich die Zyklen.