Seite 1 von 1

Frage zu Listenalgorithmus

Verfasst: Montag 26. Juni 2006, 14:55
von keboo
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

danke gelöst

Verfasst: Montag 26. Juni 2006, 15:31
von keboo
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

Verfasst: Montag 26. Juni 2006, 15:35
von Frank

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

Verfasst: Montag 26. Juni 2006, 15:58
von gerold
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
:-)

Verfasst: Montag 26. Juni 2006, 22:27
von BlackJack
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]