Mit Listen Arbeiten

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
Draco2010
User
Beiträge: 40
Registriert: Dienstag 18. August 2009, 06:28

Hallo

Liste erstellen und Zahlen anhängen ist kein Problem!
Aber wie werden Zuweisungen in der Liste angehängt, mit denen man später rechnet!

Beispiel:

y=[]
x=[]

mit y.append() und x.append() werden Zahlen angehangen!

Nun aber möchte ich mit

y=input()
x=input() Zahlen manuell eingeben, die in der Liste angehängt werden.

y=input(23,12;24,23)
x=input(22,15;23,56); variablen in Liste"y" sollen addiert werden, und auch in Liste"x" sollen die Zahlen addiert werden.

Wenn die Summe in Liste y(23,12+24,23) 47,35 ergibt
Und die Summe in x(22,15+23,56) 45,71 ergibt, soll das Programm, wie bei einer Gleichung, folgendes Ausgeben: Für "X" = "+1,64"
Für "Y" = "-1,64"
Nach jeder Eingabe von "Y" und "X" sollen die Zahlen mitteinder addiert, und danach die differenz der beiden Listen ausgegeben werden.

Besten Dank
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Draco2010 hat geschrieben:Hallo

Liste erstellen und Zahlen anhängen ist kein Problem!
Das klingt schon mal gut, aber...
Aber wie werden Zuweisungen in der Liste angehängt, mit denen man später rechnet!
Wo genau ist hier der Unterschied zu "Anhängen"?
Nach jeder Eingabe von "Y" und "X" sollen die Zahlen mitteinder addiert, und danach die differenz der beiden Listen ausgegeben werden.
Du musst eben eine Funktion schreiben, die die beiden Werte einliest und jeweils an die richtige Liste hängt. Danach musst Du ja nur noch die Summe über der Liste bilden und von den beiden Ergebnissen noch die Differenz ausrechnen.

Ich verstehe hier wirklich nicht Dein Problem? Hast Du das Tutorial durchgearbeitet und die Doku griffbereit? Wenn ja, sollte das einfach zu realisieren sein!
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Code: Alles auswählen

# unmittelbare Lösung
x = [1, 2, 5, 7]
s = 0
for v in x:
    s = s + v
print s

# als Funktion
def summe(x):
    s = 0
    for v in x:
        s += v
    return s
print summe(x)

# Summenbildung ist allerdings schon eingebaut

print sum(x)

# man kann sich mit reduce behelfen
from operator import add
print reduce(add, x)

# oder lambda statt des imports benutzen
print reduce(lambda x,y: x+y, x)

# oder rekursiv vorgehen
def summe(x):
    if x:
        return x[0] + summe(x[1:])
    return 0
print summe(x)

# gerne auch mit einer if expression statt statement
def summe(x):
    return x[0] + summe(x[1:]) if x else 0
print summe(x)

# oder extra-umständlich rein operational
s = 0
i = 0
while i < len(x):
    s = s + x[i]
    i = i + 1
print s
Stefan
Draco2010
User
Beiträge: 40
Registriert: Dienstag 18. August 2009, 06:28

Vielen Dank Stefan,

deine Quellcodes haben mich etwas weiter gebracht, fand ich super dass Du sie mir gleich in verschiedenen Möglichkeiten auggezeigt hast!

Würde mich nur interessieren, für was die Variable "s" ; "v"; und "i" steht ?

Besten Dank
Gruß
Draco
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Das ist seine shorthand für sum/summe, value, index. Du kannst sie auch ausschreiben oder krokodil, elefant, ameise nennen. Ganz wie es beliebt. ;-) Im Allgemeinen empfielt sich Bezeichner zu wählen, die für sich selbst stehen. s, v, i und andere werden so häufig verwendet, dass man sie oft nicht ausschreibt.

edit: PS Vorsicht: sum ist built-in.
Antworten