2016-04-30 95 views
1
def drop dest(routes,location): 
    for i in range(len(routes)): 
     if routes[i] == location: 
       routes.remove(routes[i]) 
    return routes 

我使用给出一个列表的功能定义为
routes = [(3,2),(2,4),(5,5),(2,4)],说我只是想删除的(2,4)第一次出现的值。我对如何做到这一点有点困惑,因为我删除了这个值,但是我也删除了给定的其他值。我只想删除第一个给定的值。给定的值的列表中删除第一次出现

回答

3

很简单,使用list.remove

>>> routes = [(3,2),(2,4),(5,5),(2,4)] 
>>> routes.remove((2,4)) 
>>> routes 
[(3, 2), (5, 5), (2, 4)] 
+0

我明白,但用我的代码在for循环,因为我代码将删除与其匹配的所有值。你如何修复我的代码,删除第一个值 – brian012

+0

@ brian012,因为你的'for'循环会在第一次删除后继续执行。你可以在'if'块中添加一个'break'。 – timgeb

0

如果这是你的代码,并需要在一个循环,并清除一次我会做这样的:

def drop_dest(routes,location): 
    flag = 1 
    for i in range(len(routes)): 
      if routes[i] == location and flag == 1: 
       routes.remove(routes[i]) 
       flag = 0 
    return routes´ 
相关问题