[Python-de] 1,2,3,5,7,8,9 -> "1-3,5,7-9"
Frank Immich
frankimmich at gmx.de
Fre Jun 18 09:24:32 CEST 2004
Hallo zusammen,
ich bin irgendwie nicht zufrieden...
Ich würde gerne aus einer Liste:
z.b.
1,2,3,5,7,8,9,11
einen String generieren, wobei fortlaufende Reihen zusammengefasst werden.
-> "1-3,5,7-9,11"
hier mein kläglicher Vesuch...
irgendwie habe ich das Gefühl: Das muss einfacher gehen ?
Vielleicht hat ja jemand Lust auf diese kleine morgendliche
Denksportaufgabe...
Vielen Dank
Grüße Frank
#!/usr/local/bin/python
l=[3,5,6,7,8,9,10,11,12,22,23,24,25,26,32,34,36,38,39,40,41,44,45,47]
l.sort()
r=""
mylist=[]
for c in xrange(len(l)-1):
mylist.append(l[c])
if l[c]+1 == l[c+1]:continue
if len(mylist)==1:r=r+str(mylist[0])+ ","
else:r=r + str(mylist[0]) +"-" + str(mylist[len(mylist)-1])+","
mylist=[]
mylist.append(l[len(l)-1])
if len(mylist)==1:r=r+str(mylist[0])+ ","
else:r=r + str(mylist[0]) +"-" + str(mylist[len(mylist)-1])+","
print r
--
+++ Jetzt WLAN-Router für alle DSL-Einsteiger und Wechsler +++
GMX DSL-Powertarife zudem 3 Monate gratis* http://www.gmx.net/dsl