Given a list of values remove first occurrence

前端 未结 3 1885
旧巷少年郎
旧巷少年郎 2021-01-19 03:39
def drop dest(routes,location):
    for i in range(len(routes)):
        if routes[i] == location:
              routes.remove(routes[i])
    return routes


        
相关标签:
3条回答
  • 2021-01-19 04:03

    It's very simple. Just use break statement in the loop. So that the loop stops iterating once it satisfies the if condition for the first time. Using remove() is better but if you want to use loop in your code. This might be the answer.

    def drop dest(routes,location):
    for i in range(len(routes)):
        if routes[i] == location:
              routes.remove(routes[i])
              break
    return routes
    
    0 讨论(0)
  • 2021-01-19 04:13

    if that is your code and needs to be in a loop and removed only once I would do it like that:

    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´
    
    0 讨论(0)
  • 2021-01-19 04:18

    It's simple, use list.remove.

    >>> routes = [(3,2),(2,4),(5,5),(2,4)]
    >>> routes.remove((2,4))
    >>> routes
    [(3, 2), (5, 5), (2, 4)]
    
    0 讨论(0)
提交回复
热议问题