2017-02-23 156 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

你似乎在这里是新的。由于您没有表现出自己已经努力解决问题,因此您得到了很多降薪。如果您发布您尝试过的代码,您可能会得到一些帮助。提示:使用列表理解来过滤那些超出所需范围的值。 – mhawke

+0

新贴张..是的。好的,谢谢,生病了吧。 –

回答

0

编辑:

对不起,误解了你的问题。我以为你只想保持这些价值。相应地更改了我的代码。

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

幸运的是,我的解决方案也适用于字符串,其中'<'''=='和'>'也有含义。 –