2017-02-23 226 views
-8

У меня есть список строковых значений.Python: удалить все значения из списка между двумя значениями

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

Я хочу удалить все значения (включая range_start и range_end), которые находятся между диапазонами.

+0

Вы уверены, что хотите сравнить строки, а не числа ? Также не используйте зарезервированные имена, такие как 'list' для переменных. –

+1

Вы, кажется, здесь новые. Вы получаете много downvotes, потому что вы не показали, что вы приложили все усилия для решения проблемы самостоятельно. Если вы разместите код, который вы пробовали, вы, скорее всего, получите некоторую помощь. Подсказка: используйте список, чтобы отфильтровывать те значения, которые выходят за пределы требуемого диапазона. – mhawke

+0

Новое сообщение. Да. Хорошо спасибо, больно дайте ему шанс. –

ответ

0

EDIT:

Извините, неверно сформулируйте ваш вопрос. Я думал, вы только хотели сохранить эти ценности. Изменен мой код соответственно.

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

Вы можете использовать список понимание с условием диапазон:

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

Вы можете также использовать filter в списке:

list1=list(filter(lambda x:not(range_start<=x<=range_end), list1)) 
print(list1) 
+0

Нет. Целые были только для ссылки, у меня есть строковые элементы в моем списке. –

+0

Редактировал мой вопрос для дальнейшей ясности. –

+0

К счастью для вас, мое решение также работает для строк, где '' '' '' '' '' '' '' '' '' также имеют смысл. –