Seite 1 von 1

Array in liste umwandeln

Verfasst: Sonntag 14. Februar 2021, 00:39
von Bykl
ich stehe vor einem grundsätzlichen Problem.

Ich habe ein Modul, welches eine gewünschte Anzahl an Listen zusammenbaut.

Nr.: 1 [1, 0, 0, 0, 0, 0]
Nr.: 2 [1, 2, 1, 0, 0, 0]
Nr.: 3 [1, 2, 1, 2, 2, 1]

Die lass ich in eine Liste einlesen und forme daraus ein Array!

[[1 0 0 0 0 0]
[1 2 1 0 0 0]
[1 2 1 2 2 1]]

Das funktioniert auch. Dann mach ich die Zeilensumme
Zeilensumme [3 4 2 2 2 1]

Nun sind die drei Einzellisten in ein Tupel gebunden, und damit nicht mehr veränderbar! Die Matrix soll aber durchpermutiert werden, und jedesmal die Summe genommen werden. Ich krieg nur die Listen aus dem Array nicht wieder raus und veränderbar gemacht. Alle Befehle, zip, tolist() und ähnliches stellen unveränderliche Datentypen her.

Was kann ich tun? Es muß doch Befehle geben, die diese Umwandlung hin und her ohne Probleme bewältigen.

Das ist das Ergebnis von arr.tolist()
liste0 (array([1, 0, 0, 0, 0, 0]),)
liste1 (array([1, 2, 1, 0, 0, 0]),)
liste2 (array([1, 2, 1, 2, 2, 1]),)

Damit kann man nichts machen. Da kommt Meldungen:

AttributeError: 'tuple' object has no attribute 'pop'

was kann man tun?

Re: Array in liste umwandeln

Verfasst: Sonntag 14. Februar 2021, 08:22
von Sirius3
Statt hier lang und breit zu erklären, was dein Code macht, solltest du einfach deinen Code hier posten. Denn wenn du keine Tuple willst, wäre das einfachste, erst gar keine zu erzeugen. Um da helfen zu können, müsste man aber genau wissen, an welcher Stelle du das machst.

Re: Array in liste umwandeln

Verfasst: Sonntag 14. Februar 2021, 12:05
von __blackjack__
@Bykl: Das klingt komisch, denn `tolist()` erzeugt kein Tupel sondern verschachtelte Listen:

Code: Alles auswählen

In [107]: A                                                                     
Out[107]: 
array([[1, 0, 0, 0, 0, 0],
       [1, 2, 1, 0, 0, 0],
       [1, 2, 1, 2, 2, 1]])

In [108]: A.tolist()                                                            
Out[108]: [[1, 0, 0, 0, 0, 0], [1, 2, 1, 0, 0, 0], [1, 2, 1, 2, 2, 1]]
Das sieht also anders aus als das was Du da gezeigt hast. Bei dem was Du gezeigt hast, weiss ich nicht einmal was das überhaupt bedeuten soll, denn das ist ja irgendwie ”ausgedacht” und keine Ausgabe von Python.