给定值列表删除第一次出现

时间:2016-04-30 17:40:01

标签: python list function

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 个答案:

答案 0 :(得分:6)

这很简单,请使用list.remove

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

答案 1 :(得分: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´

答案 2 :(得分:0)

这很简单。只需在循环中使用break语句即可。这样,一旦第一次满足if条件,循环就停止迭代。使用remove()更好,但是如果您想在代码中使用循环。这可能就是答案。

def drop dest(routes,location):
for i in range(len(routes)):
    if routes[i] == location:
          routes.remove(routes[i])
          break
return routes