Frage zu Listenalgorithmus

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.
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

Frage zu Listenalgorithmus

Beitragvon keboo » Montag 26. Juni 2006, 14:55

Hallo Leute,

Irgendwie bekomm ich gerade einen einfach scheinenden Listenalgorithmus nicht so recht hin :(

Code: Alles auswählen

list=[1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4]


Wie kann ich am Einfachsten die Summen der jeweils gleichen Einträge in eine neue Liste schreiben?



Danke für eure Unterstützung.

LG
Johannes
keboo
User
Beiträge: 132
Registriert: Sonntag 19. Februar 2006, 14:03

danke gelöst

Beitragvon keboo » Montag 26. Juni 2006, 15:31

Hallo!

Irgendwie bin ich doch noch selber draufgekommen:

Code: Alles auswählen

a=0

list=[1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4]

for i in range(len(list)):
   if list[i]!=list[i-1]:
      if (a != i):
         print "Summe: " + str(sum(list[a:i]))
         a=i

print "Summe: "+str(sum(list[a:len(list)]))


LG
Johannes
Frank
User
Beiträge: 6
Registriert: Freitag 23. Juni 2006, 11:45

Beitragvon Frank » Montag 26. Juni 2006, 15:35

Code: Alles auswählen

#!/usr/bin/env python
 
 my_list=[1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4]
 min = 1
 max = 4
 solv_list = []
 
 for i in range(max):
     tempsum = 0
     for j in range(len(my_list)):
         if my_list[j] == min:
             tempsum = (tempsum+1)
     solv_list.append(tempsum)
     min = (min + 1)
 
 for k in solv_list:
     print k


Soweit der Senf eines Python-Noobs. :)


Gruß, Frank
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Montag 26. Juni 2006, 15:58

Hier ist noch einer ;-)

Code: Alles auswählen

my_list = [1,1,1,2,2,2,2,3,3,3,3,3,4,4,4,4]
# list ist ein Schlüsselwort. Bitte nicht überschreiben.

for item in frozenset(my_list):
    print "Summe %s: %4s" % (item, my_list.count(item) * item)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Beitragvon BlackJack » Montag 26. Juni 2006, 22:27

Und noch'n Versuch.

Code: Alles auswählen

In [3]: a = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4]

In [4]: from itertools import groupby

In [5]: [sum(items) for key, items in groupby(a)]
Out[5]: [3, 8, 15, 16]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder