Der würd eher ne Mischung aus und sagen.
Nicht bös' gemeint .
Das Simpel-Beispiel aus meinem C++-Buch.
Ich hab' eine Klasse "Rechteck", die hat 2 Variablen, nämlich die Seitenlängen A+B.
Jetzt erstelle ich eine Klasse "Quadrat", die erbt alle Eigenschaften der Klasse "Rechteck" (hat also automatisch 2 Seiten, A und B), bekommt aber als Bedingung mit, dass A=B gesetzt wird.
"Eigenschaften" ist auch schlecht gewählt, alle Variablen und Funktionen trifft's eher.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Irgendwie schein ich zu blöd dazu zu sein...wie leg' ich denn nen Array an?
Hab's einfach versucht mit myarray[0] = gc.get... aber da nörgelt es rum, der globale Name myarray wär' nicht definiert.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Direkt Arrays gibt es nicht ohne weiteres in Python. Aber Listen und Dictionaries.Irgendwie schein ich zu blöd dazu zu sein...wie leg' ich denn nen Array an?
Hab's einfach versucht mit myarray[0] = gc.get... aber da nörgelt es rum, der globale Name myarray wär' nicht definiert.
Also:
Liste
myarray = []
myarray[0] = gc.get...
Dictionary
myarray = {}
myarray[0] = gc.get...
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Ist im Prinzip auch das selbe.sieht für mich nach nem Array aus, sind schließlich keine Pointer drin.
Aber egal, das wird wohl gehen , danke .
So wie ich das verstanden habe besteht der Unterschied zwischen Listen und dictionaries darin, daß man bei Listen den Index/key nicht umbenennen kann.
Das geht so nicht. Listen kann man mit append oder extend erweitern:
liste = []
liste.append(value)
oder
liste.extend(iterable)
Wieso soll man auch bei Listen den Index umbenennen? Deswegen gibt es Dictionaries. Schlüssel bei Dict. können alle unveränderlichen Objekte und eigene Objekte sein.
Ein weiterer Unterschied ist, das Listen die Reihenfolge der Inhalte erhalten, Dictionaries sind dagegen unsortiert.
In Python gibt es nur Pointer. Variablen enthalten nicht die Objekte, sondern die Referenzen auf diese Objekte.
^ ^
Da hast du's nochmal von einem Informatiker erklärt bekommen.
myarray[0] = gc.get...
Das geht also nur, wenn man man einen Eintrag überschreiben will.
Wozu braucht man überhaupt Listen, wenn das auch alles und besser mit den Dictionaries geht?
Diese Seite erklärt es ganz ordentlich.
"Die Effizienz der assoziativen Listen (=dictionaries) ist extrem gut. Der Aufwand beträgt O(n) = 1, d.h. er ist konstant. Egal wie viele ein Pythonwörterbuch enthält, ob 1, 10, 100 oder 1.000.000 Einträge, die Suche ist immer gleich schnell. Sie ist so schnell, dass Python selbst für seine interne Verwaltung, z.B. die Namespaces, exzessiven Gebrauch macht. Diese Geschwindigkeit hat allerdings ihren Preis. Während als Wert (value) eines dicts alle Python Typen erlaubt sind, sind die zulässigen Typen für die Schlüssel (key) beschränkt. Schlüssel müssen hashable sein. Hashbare Objekte verfügen über einen eindeutigen Hashwert, der sich während ihrer gesamten Lebensdauer nicht ändert. Dieser Wert lässt sich mit der eingebauten Funktion id() abfragen. Die veränderbaren Objektetypen, wie lists, dicts und Objekte, die über ihren Wert und nicht über ihre Objektidentität verglichen werden, sind nicht hashable und damit als Schlüsselwert ungeeignet."
Merci .
....
Mit Pointern kann ich nicht gescheit umgehen , wie gut, dass die Dinger ja teils wie Arrays handhabbar sind.
wo nehme ich mal Zeit zum lesen her?
Aber danke, werd' ich irgendwann mal reinschauen.
Noch so ne simple Dödel-Frage:
Wie lasse ich den ne For-Schleife abwärts laufen?
oder so?PHP-Code:
i=10
for i in range (0) down:
Bevor's einer vorschlägt: Ja, ich hab' die Werte einfach andersrum in die Liste einsortieren lassen, ich will's aber trotzdem wissen.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
for i in range(10,0,-1): print i
----------
range liefert eine liste zurück. du definierst i, um es gleich anschließend mit dem ersten listenelement (in deinem fall eine leere liste wg. range(0)) zu überschreiben ....
kleiner tipp am rande: bei schleifen aus effizienz-gründen xrange nehmen :-); also
ist dann die Lösung auf deine FrageCode:for i in xrange(10,0,-1): print i
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Was sollte bei range "überladen" werden?
------------------
xrange: Weniger speicherverbrauch und schneller. ne kurzfassung am prompt liefert dir: help(xrange)