Python Append -Funktion fehlfunktionieren
Posted: 07 Apr 2025, 22:27
Ich benutze Grinkte.io, eine Online -IDE für Python3. Ich habe derzeit keinen Zugriff auf andere IDES zum Download. Ich versuche, ein Numpy -Array mit zahlreichen iterativen und bedingten Aussagen zu erstellen. Wenn ich jede Liste drucke, erhalte ich die richtigen Ergebnisse, die ich erwarte, aber wenn ich sie dem Array angehängt habe, führt ich zu sehr seltsamen Ergebnissen. < /P>
Dies ist mein Code: < /p>
Dies ist offensichtlich sehr unterschiedlich als erwartet, da ich erwarten würde, dass jede Zeile im Array unterschiedlich ist, während in jeder Iteration alle Zeilen aktualisiert werden und sie sind gleich.
Dies ist mein Code: < /p>
Code: Select all
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
x = Symbol('x')
y = Function('f')(x)
#Equation is ay_(n-1) + by_n + cy_(n+1) = d
a = 3
b = 4
c = 6
d = 4
#Final row equation: ey_(n-2)+fy_(n-1)+gy_(n) = d
e = 5
f = 3
g = 7
#Timestep
h = 0.2
#Initialize variables
y_0 = 0
final_point = 1
array = []
row = []
i = 1
array_row_size = int(final_point / h)
array_column_size = array_row_size + 1
for i in range(1,array_row_size+1):
row.clear()
if i == 1:
row.append(b)
row.append(c)
for j in range(2, array_column_size-1):
row.append(0)
row.append(d)
elif i == 2:
row.append(a)
row.append(b)
row.append(c)
for j in range(3, array_column_size-1):
row.append(0)
row.append(d)
elif i < (array_column_size - 1) and i>2:
for j in range(2,i):
row.append(0)
row.append(a)
row.append(b)
row.append(c)
for j in range(i+1, array_column_size-1):
row.append(0)
row.append(d)
else:
for j in range(1, array_column_size-3):
row.append(0)
row.append(e)
row.append(f)
row.append(g)
row.append(d)
array.append(row)
print("Row:", row)
print("Array", array)
i += 1
#print(array)
< /code>
Und dies sind die Ergebnisse: < /p>
Row: [4, 6, 0, 0, 0, 4]
Array [[4, 6, 0, 0, 0, 4]]
Row: [3, 4, 6, 0, 0, 4]
Array [[3, 4, 6, 0, 0, 4], [3, 4, 6, 0, 0, 4]]
Row: [0, 3, 4, 6, 0, 4]
Array [[0, 3, 4, 6, 0, 4], [0, 3, 4, 6, 0, 4], [0, 3, 4, 6, 0, 4]]
Row: [0, 0, 3, 4, 6, 4]
Array [[0, 0, 3, 4, 6, 4], [0, 0, 3, 4, 6, 4], [0, 0, 3, 4, 6, 4], [0, 0, 3, 4, 6, 4]]
Row: [0, 0, 5, 3, 7, 4]
Array [[0, 0, 5, 3, 7, 4], [0, 0, 5, 3, 7, 4], [0, 0, 5, 3, 7, 4], [0, 0, 5, 3, 7, 4], [0, 0, 5, 3, 7, 4]]