Page 1 of 1

Python Append -Funktion fehlfunktionieren

Posted: 07 Apr 2025, 22:27
by Anonymous
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>

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]]
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.