Bereiche vergleichen

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.
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Bereiche vergleichen

Beitragvon ete » Montag 14. Juli 2008, 10:29

Hallo!

Gibt es eine Funktion um Bereiche zu vergleichen?

a = range(0, 10)
b = range(5, 15)

Ich möchte wissen ob eine der Zahlen vom Bereich a auch in Bereich b vorhanden ist. Über set bzw. s.issubset(t) muss ja der ganze Bereich übereinstimmen, mich interessiert aber ob mindestens eine Zahl die gleiche ist.

Liebe Grüsse
Stefanie
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Re: Bereiche vergleichen

Beitragvon audax » Montag 14. Juli 2008, 10:34

Code: Alles auswählen

 any(x in b for x in a)
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Montag 14. Juli 2008, 10:36

[code="py"]>>> set("abc") & set("cg")
set(['c'])[/code]
TUFKAB – the user formerly known as blackbird
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Montag 14. Juli 2008, 10:36

Ab 2.5 gibts die any() Funktion die da helfen könnte.

Code: Alles auswählen

In [18]: a = range(0, 10)

In [19]: b = range(5, 15)

In [20]: any([e in a for e in b])
Out[20]: True


Edit: Man darf beim antworten nicht mal nen Schluck Kaffee trinken, dann ist man schon zu spät ;)
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Montag 14. Juli 2008, 10:39

Zap hat geschrieben:Ab 2.5 gibts die any() Funktion die da helfen könnte.

Die man aber bitte mit eine Generator Expression und nicht einer list Comprehension füttert.
TUFKAB – the user formerly known as blackbird
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Beitragvon Zap » Montag 14. Juli 2008, 10:56

Stimmt! Ist mir auch aufgefallen als ich audax's Vorschlag gesehen habe. ;)
ete
User
Beiträge: 218
Registriert: Montag 19. Februar 2007, 13:19
Kontaktdaten:

Beitragvon ete » Montag 14. Juli 2008, 10:57

Vielen Dank, any() kannte ich noch nicht :?
BlackJack

Beitragvon BlackJack » Montag 14. Juli 2008, 14:54

Und aus `a` sollte man vorher noch ein `set()` machen, damit das ``e in a`` keine lineare Operation wird. Und ich hoffe es geht um Listen mit Lücken drin und nicht wirklich um welche mit direkt aufeinander folgenden Zahlen wie sie von `range()` erzeugt werden.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]