Frage zu Listen

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.
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Frage zu Listen

Beitragvon Imperator » Freitag 21. September 2007, 16:21

Hallo,

Code: Alles auswählen

Takte = eingabe.split('+')


Damit erzeuge ich eine Liste, weiß aber nie wie viele Elemente sie dann hat (kommt auf die Eingabe des Benutzers an). Bietet Python eine methode mit der Man das vorletzte und das vorvorletzte poppen kann. Mit dem letzten Element geht das ja auch.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Freitag 21. September 2007, 16:24

Bitte schön:

Code: Alles auswählen

>>> eingabe = 'eins+zwei+drei+vier'
>>> eingabe
'eins+zwei+drei+vier'
>>> takte = eingabe.split('+')
>>> takte
['eins', 'zwei', 'drei', 'vier']
>>> len(takte)
4
>>> takte[1:2]
['zwei']
>>> takte[1:3]
['zwei', 'drei']
>>> takte.pop(0)
'eins'
>>> takte
['zwei', 'drei', 'vier']
>>> takte.pop(-1)
'vier'
>>> takte
['zwei', 'drei']
>>>
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Freitag 21. September 2007, 16:32

Also '-1' bezeichnet das vorletzte Listenelement? Kann man Listen so umwandeln, dass sie mit einer Print Anweisung ausgegeben werden können?
Zuletzt geändert von Imperator am Freitag 21. September 2007, 16:48, insgesamt 1-mal geändert.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Beitragvon Y0Gi » Freitag 21. September 2007, 16:48

Ups, mein Fehler. Nein, es bezeichnet das letzte (also das erste von hinten). Das vorletzte hat demnach den Index -2.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 21. September 2007, 20:19

Imperator hat geschrieben:Kann man Listen so umwandeln, dass sie mit einer Print Anweisung ausgegeben werden können?

Ja, ``print listenobjekt`` geht sogar ohne Umwandlung.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Samstag 22. September 2007, 09:29

Ich hab versucht den genauen Befehl im Interpreter herauszufinden, es aber nicht geschafft. Kannst du mir bitte sagen wie das genau geschriebem wird?
BlackJack

Beitragvon BlackJack » Samstag 22. September 2007, 09:45

Die Anweisung heisst ``print`` (ohne die ``). Wenn Du die nicht kennst, solltest Du vielleicht nochmal ganz von vorne mit dem Python-lernen anfangen.

Code: Alles auswählen

In [52]: liste = [1, 2, 3]

In [53]: print liste
[1, 2, 3]
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Samstag 22. September 2007, 10:16

Natürlich kenn ich die anweisung print, aber wenn ich schreibe print liste, dann gibt ds nen Error.
BlackJack

Beitragvon BlackJack » Samstag 22. September 2007, 10:50

Du hast den Code in meinem letzten Beitrag gesehen? Da ist kein Fehler aufgetreten. Es geht also, und Du must irgend etwas falsch machen.

*Was* Du falsch machst kann man ohne *Quelltext* und die *Fehlermeldung* nicht sagen.
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Montag 24. September 2007, 13:25

Wenn ich deinen Code genauso in ein Fenster kopiere (im Interpreter klappt es) kommt die Meldung 'invalid syntax'.
Sorry, das ich gestern nicht mehr drauf geantwortet hab, aber mir ist die Tastatur durchgedreht.
BlackJack

Beitragvon BlackJack » Montag 24. September 2007, 14:16

Was heisst "in ein Fenster kopieren"? Was für ein Fenster? Welche Anwendung? Was kopierst Du dort hin? Wie ist der volle Traceback?
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Montag 24. September 2007, 15:49

Fenster = File, new window
Ein ganz normales Editorfenster also.
Fehlermeldung (es lässt sich gar nicht erst starten): There is an error in your programm.
Invalid syntax
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Beitragvon C4S3 » Montag 24. September 2007, 16:06

Nun, der Output oben sieht nach IDLE (oder PyCrust oder sowas) aus.
Wenn du die Zeilen oben richtig kopierst (also eigentlich formatierst) und dann verwendest, dann geht's auch:

Code: Alles auswählen

liste = [1,2,3]
print listeliste


Geht ja bei mir auch. Wenn ich es allerdings "live" in IDLE mache, sieht mein Prompt auch so aus:

Code: Alles auswählen

IDLE 1.2.1     
>>> liste = [1,2,3]
>>> print liste
[1, 2, 3]
>>>

Also mit den ">>>".

Das trifft dann natürlich auf den anderen Code weit oben auch zu!
Gruß!
Imperator
User
Beiträge: 275
Registriert: Montag 20. August 2007, 14:43
Kontaktdaten:

Beitragvon Imperator » Montag 24. September 2007, 17:28

Code: Alles auswählen

in [52]: liste = [1, 2, 3]
in [53]: print liste


genau wie bei BlackJack. Anscheinend mag die IDLE das nicht
poker
User
Beiträge: 146
Registriert: Donnerstag 20. September 2007, 21:44

Beitragvon poker » Montag 24. September 2007, 17:42

Imperator hat geschrieben:Anscheinend mag die IDLE das nicht
Du sollst auch ``print liste`` und nicht ``in [53]: print liste`` eingeben...

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]