Array in liste umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Bykl
User
Beiträge: 93
Registriert: Donnerstag 5. Oktober 2017, 17:57

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?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten