Definitionen

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.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 8. März 2006, 18:09

Code: Alles auswählen

liste2.extend(liste1[:7])
del liste1[:7]
sollte tun was Du willst.
--- Heiko.
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Mittwoch 8. März 2006, 18:29

ja genau diesen Befehl hab ich gesucht!!

danke nochmal, aber bitte nicht weglaufen ich brauche sicher gleich nochmaa Hilfe!! :P
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Mittwoch 8. März 2006, 18:35

so....

da bin ich wieder...

neues Problem (was auch sonst!! :D)

Also ich habe vollgendes Problem:

Ich will meine eine Liste mischen...

Problem:
AttributeError: 'builtin_function_or_method' object has no attribute 'shuffle'

Code: Alles auswählen

random.shuffle(liste)
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 8. März 2006, 18:40

random ist nicht das was es vorgibt zu sein (nämlich ein Modul), weil Du es irgendwo in Deinem Programm überschrieben hast.

Guck mal genau nach wo Du den Namen random benutzt (eben außerhalb des Kontextes den Du da geschrieben hast), und ersetz den Namen da durch was sinnvolleres.

Das sollte helfen.
--- Heiko.
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Mittwoch 8. März 2006, 18:42

from random import *

ist das einzige mal!!

danach wird noch eine andere Liste gemischt!!
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 8. März 2006, 18:46

Genau.

Code: Alles auswählen

from random import *
bedeutet dass Du alle Namen aus dem Namespace random (was ein Modul ist) in den lokalen Namespace importierst, ohne Rücksicht auf Verluste, unter anderem auch den Namen random, der eine Funktion ist. Das bedeutet dass der Name random in Deinem Skript nicht auf ein Modul zeigt, sondern auf eine Funktion gleichen Namens aus dem Modul random, und die Fehlermeldung bedeutet schlicht und ergreifend dass die Methode nun mal kein Attribut mit Namen shuffle hat.

Der Name random.shuffle (Modul random -> Name shuffle) ist danach einfach als shuffle zu erreichen, sprich Du brauchst nicht mehr random.shuffle zu schreiben, sondern schreibst einfach shuffle.

from <blah> import *

ist aus diesen Gründen in den allermeisten Fällen extrem unangebracht, weil die Übersicht flöten geht.

Probier also entweder random.shuffle durch shuffle(<blah>) zu ersetzen, oder mach anstelle von from random import * ein

Code: Alles auswählen

import random
was nur das Modul importiert, und dann kannst Du auch auf die Methode shuffle des Moduls random mittels random.shuffle zugreifen.
--- Heiko.
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Mittwoch 8. März 2006, 18:53

ah, danke!!

aber jetzt kommt direk die Nächste, was auch sonst!!

Wie kann ich, wenn ich eine Liste habe (z.B.

Code: Alles auswählen

Liste["a","b"]
die Funktionen a und b printen??

Code: Alles auswählen

def a()
hallo = 1
ciao = 2

def b()
hallo = 1
ciao = 2
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 8. März 2006, 19:06

Ui. Erklär lieber erst mal was Du machen willst, dann kann man Dir eher helfen. Wie's ausschaut willst Du Dinge tun die ganz und gar nicht Pythonisch sind, bzw. kennst einfach die Datentypen die Python zur Verfügung stellt noch nicht ausreichend (nested-lists, etc.)...
--- Heiko.
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Mittwoch 8. März 2006, 19:13

Also.....

Ich will einfach

Code: Alles auswählen

print Liste
machen und dann die in der Liste vorhandenden Glieder

Code: Alles auswählen

Liste[a,b]
geprintet werden, aber halt mit den Funktionen

Code: Alles auswählen

def a():
hi = 1
ciao = 2

def b():
ho = 2
cya = 1
geprintet wird, also: (in etwa so...)

Code: Alles auswählen

hi = 1
ciao = 2
ho = 2
cya = 1
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 8. März 2006, 19:18

Wie bereits vorher schon gesagt: Die Variablen die Du in einer Funktion definierst sind außerhalb dieser Funktion nicht sichtbar, und vor allen Dingen sind Funktionsvariablen auch keine Elemente einer Liste...

Du willst wahrscheinlich einen Hash von Hashes:

Code: Alles auswählen

x = {"a":{"hi":1,"ciao":2},"b":{"ho":2,"cya":1}}
print x
print x["a"]
print x["b"]
print x["a"]["hi"]
...
Wenn das Dir nicht hilft, kann ich nur ein gutes Buch zu Python und besonders zu Datentypen empfehlen, weil man sowas nicht über ein Forum vermitteln kann (zumindest aus meiner Sicht)...
--- Heiko.
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 8. März 2006, 19:31

Da verweise ich gleich mal auf's Wiki: http://wiki.python.de/Tutorial#Tutorial Bitte mal die Seiten unter "Datenverarbeitung" duchschauen!

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
oscar15
User
Beiträge: 67
Registriert: Freitag 3. März 2006, 15:43
Wohnort: Kölle

Mittwoch 8. März 2006, 19:43

hätte da noch nen problem!! (übrigens die seite ist gut, aber ein Mensch ist besser!!)

Code: Alles auswählen

p1 = raw_input("Name bitte: ")
pos = Liste2.index(p1)
Liste.extend(p1) 
del Liste2[pos]
Nur leder wird dann jeder Buchstabe, des Wortes, als eigenes Glied in die Liste eingefügt.

Bsp.: ['W', 'a', 'l', 'd'][/b]
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Mittwoch 8. März 2006, 19:55

.append fügt ein Element hinzu, .extend fügt Elemente eines Iterators (ein String ist ein Iterator über seine Buchstaben) einzeln hinzu.

Sprich, Du willst .append, und nicht .extend.
--- Heiko.
Drizzt
User
Beiträge: 22
Registriert: Mittwoch 8. März 2006, 15:47

Mittwoch 8. März 2006, 21:01

*mal dazwischenspring*

Finde es im übrigen lobenswert, wie trotz "Anfängerfragen" geduldig und ohne "dummes" Kommentar geantwortet wird, (bin selbst erst seit heute hier registriert) wie es in vielen anderen foren oftmals zu lesen ist.
Auch wenn heute Python nicht nutzen konnte für meine Zwecke ;-)

Gruß
Alex
Kompottkin
User
Beiträge: 21
Registriert: Sonntag 26. Februar 2006, 03:09
Wohnort: Penzberg
Kontaktdaten:

Mittwoch 8. März 2006, 23:49

Finde es im übrigen lobenswert, wie trotz "Anfängerfragen" geduldig und ohne "dummes" Kommentar geantwortet wird, (bin selbst erst seit heute hier registriert) wie es in vielen anderen foren oftmals zu lesen ist.
Ich vermute, daß das daher rührt, daß dieses Forum verglichen mit gewissen anderen eher spärlich besucht ist. Gäbe es mehr interessante Fragen, hätten die Mitglieder hier vermutlich weniger Zeit für lanweilige.

Viele Foren sind eben überlaufen. Wenn die Mitglieder dieser sich um eher langweilige Fragen, die jeder eigentlich auch durch ein wenig Eigenleistung selbst beantworten könnte, nicht kümmern, sondern sie im Gegenteil als lästig betrachten, ist das meines Erachtens nur allzu verständlich.
Antworten