Seite 1 von 1

Mit Listen Arbeiten

Verfasst: Samstag 2. Januar 2010, 15:09
von Draco2010
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

Re: Mit Listen Arbeiten

Verfasst: Samstag 2. Januar 2010, 15:27
von Hyperion
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!

Verfasst: Sonntag 3. Januar 2010, 11:43
von sma

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

Verfasst: Montag 4. Januar 2010, 11:28
von Draco2010
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

Verfasst: Montag 4. Januar 2010, 11:58
von CM
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.