Seite 1 von 1
Sets erstellen
Verfasst: Dienstag 25. Mai 2010, 14:44
von Lastalda
Hallo,
ich habe Schwierigkeiten mit Sets. Ich möchte gern welche verwenden, aber irgendwo ist ein Grundsatzfehler, ich kann nicht mal ganz einfache Sets erstellen.
Sollte mir das nicht ein Set mit den Werten 1, 2 und 3 drin liefern?
Ich bekomme nämlich:
TypeError: 'list' object is not callable
Kann mir bitte jemand sagen, warum, bzw. wie es richtig wäre?
Danke!
Lastalda
(Nachtrag: ich verwende Python 2.6.5, laut Dokumentation sollte set() also built-in sein...)
Re: Sets erstellen
Verfasst: Dienstag 25. Mai 2010, 14:56
von gkuhl
Hallo und Willkommen im Forum,
klingt so als hättest du zuvor den built-in Namen "set" überschrieben:
Code: Alles auswählen
>>> set = [1,2,3]
>>> myset = set([4,2,1,4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
Grüße
Gerrit
Re: Sets erstellen
Verfasst: Dienstag 25. Mai 2010, 15:06
von Lastalda
Huh, hatte ich in der Tat in einer zeitigeren Dateiversion, hatte die entsprechende Zeile aber korrigiert (zwischenzeitlich sogar Programm neu gestartet). Ich dachte, damit wäre das gegessen. Aber anscheinend hat sich die Datei das trotzdem gemerkt... Habe jetzt den Code aus der Datei per copy&paste in eine zweite Date gepackt, und da läuft er!
Erstaunlich!
Danke!

Re: Sets erstellen
Verfasst: Dienstag 25. Mai 2010, 15:38
von EyDu
Ich vermute mal, dass du mit IDLE gearbeitet hast. Starte daher deine Programme besser direkt über die Konsole oder über eine bessere IDE, mit IDLE handelst du dir sehr leicht undurchschaubare Fehler ein.
Re: Sets erstellen
Verfasst: Dienstag 25. Mai 2010, 18:38
von Lastalda
Echt? Das ist ja schade! Ich find IDLE so super komfortabel...

(Bin halt kein Informatiker, sondern eigentlich Biologe, der nur nebenbei ab und an was scriptet, um sich die Datenverarbeitung zu erleichtern. Hab mir auch z.B. Eclipse mal angeguckt, fand es aber furchtbar unübersichtlich...

)
Re: Sets erstellen
Verfasst: Dienstag 25. Mai 2010, 18:51
von numerix
Wenn du mit IDLE zufrieden bist, dann lass es dir nicht ausreden.
IDLE ist längst nicht so schlecht, wie man das gelegentlich liest. Das von dir beschriebene Verhalten z.B. ist reproduzierbar, wenn du IDLE ohne Subprozess startest. Bei Verwendung von Subprozessen kommt das nicht vor. Ansonsten: Falls ein Verhalten auftritt, dass du dir nicht erklären kannst und es evtl. daran liegt, dass alten Namen aus dem Namensraum noch vorhanden sind, dann hilft einmaliges schließen und wieder starten von IDLE.