Seite 1 von 1
Listeninhalt in Zahlenfolge umwandeln
Verfasst: Dienstag 16. Oktober 2012, 12:11
von api
Hallo zusammen,
ich seh grad den Wald vor lauter Bäumen nicht - glaub ich zumindest...
Da wären diese Listen:
Nun möchte ich diese Listen so umwandeln, dass ich als Ergebnis folgendes erhalte:
Das kann doch nicht allzu schwer sein, oder?
CU,
API
Re: Listeninhalt in Zahlenfolge umwandeln
Verfasst: Dienstag 16. Oktober 2012, 12:16
von EyDu
Hallo.
Schwer ist das nun wirklich nicht. Du musst halt bei dem Minus teilen, falls vorhanden, und das war es dann doch schon fast. Es stellen sich mir aber zwei Fragen: Warum sind "1-5" und "5" in Listen, es ist doch nur ein Element, und was hast du eigentlich vor? Das Problem sieht danach aus, als würdest du ein anderes Problem lösen wollen.
Re: Listeninhalt in Zahlenfolge umwandeln
Verfasst: Dienstag 16. Oktober 2012, 12:21
von nomnom
Ist nicht schwer, aber warum Listen mit nur einem Element?
Code: Alles auswählen
def strrange(s):
x = map(int, s.split('-'))
if len(x) == 1:
return x
else if len(x) == 2:
return range(x[0], x[1]+1)
else:
raise TypeError('Wrong amount of numbers or wrong format')
Edit: Irgendwer musste ja schneller sein.
Re: Listeninhalt in Zahlenfolge umwandeln
Verfasst: Dienstag 16. Oktober 2012, 12:25
von api
@eyDu: Ich lese die einzelnen Werte aus einer UNIX-Cron. Und da stehen für die erlaubten Tage diese Werte, also
Ich möchte letztendlich abfragen, ob das heutige Datum zu den erlaubten Tagen gehört.
Re: Listeninhalt in Zahlenfolge umwandeln
Verfasst: Dienstag 16. Oktober 2012, 12:34
von api
@nomnom: Danke dir. Das funktioniert ja bereits bestens...

Re: Listeninhalt in Zahlenfolge umwandeln
Verfasst: Dienstag 16. Oktober 2012, 13:37
von mutetella
Wenn die Daten wirklich immer so aussehen, wie Du schreibst, dann würde auch diese sehr einfach Lösung funktionieren:
Code: Alles auswählen
def ordering(iter, op):
left = int(iter[0][0])
right = int(iter[-1][-1])
return left <= op <= right
>>> ordering(['1-5'], 4)
True
>>> ordering(['6'], 4)
False