2017-02-23 7 views
-8

Ich habe eine Liste von String-Werten.Python: Entferne alle Werte aus einer Liste zwischen zwei Werten

list1 = ["13:00","13:10","13:20","13:30","13:40"] 
range_start = "13:10" 
range_end = "13:30" 

Ich möchte alle Werte (einschließlich range_start und range_end) entfernen, die zwischen den Bereichen liegen.

+0

Sind Sie sicher ? Verwenden Sie auch keine reservierten Namen wie 'liste' für Variablen. –

+1

Sie scheinen hier neu zu sein. Sie erhalten viele Downvotes, weil Sie nicht gezeigt haben, dass Sie sich bemüht haben, das Problem selbst zu lösen. Wenn Sie den Code posten, den Sie ausprobiert haben, erhalten Sie wahrscheinlich Unterstützung. Tipp: Verwenden Sie ein Listenverständnis, um diejenigen Werte herauszufiltern, die außerhalb des erforderlichen Bereichs liegen. – mhawke

+0

Neu beim Posten .. ja. Ok, danke, ich gebe dir eine Chance. –

Antwort

0

EDIT:

Entschuldigung, falsch gelesen Ihre Frage. Ich dachte, du wolltest nur diese Werte behalten. Ich habe meinen Code entsprechend geändert.

list1 = ["13:00","13:10","13:20","13:30","13:40"] 
range_start = "13:10" 
range_end = "13:30" 

Sie Liste Verständnis mit dem Bereich Bedingung verwenden können:

list1 = [x for x in list1 if not(range_start<=x<=range_end)] 
print(list1) 

Sie filter auf Ihrer Liste auch nutzen könnten:

Sie Strings, keine Zahlen vergleichen wollen
list1=list(filter(lambda x:not(range_start<=x<=range_end), list1)) 
print(list1) 
+0

Nein. Die ganzen Zahlen waren nur als Referenz, ich habe String-Elemente in meiner Liste. –

+0

Haben Sie meine Frage für weitere Klarheit bearbeitet. –

+0

Zum Glück funktioniert meine Lösung auch für Strings, wobei auch die Zeichen <, '==' und '>' eine Bedeutung haben. –

Verwandte Themen