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

ich eine Funktionsdefinition eine Liste als
routes = [(3,2),(2,4),(5,5),(2,4)], da bin mit und sagen, ich möchte nur das erste Vorkommen Wert von (2,4) entfernen. Ich bin ein wenig verwirrt, wie das geht, weil ich den Wert entferne, aber ich entferne auch den anderen gegebenen Wert. Wo ich nur den ersten gegebenen Wert entfernen möchte.eine Liste von Werten entfernen erste Vorkommen Bei

Antwort

3

Es ist einfach, verwenden Sie list.remove.

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

Ich verstehe, dass aber meinen Code mit der for-Schleife verwenden, weil meine Code entfernt alle Werte, die ihm entsprechen. Wie behebe ich meinen Code, um nur den ersten Wert – brian012

+0

@ brian012 zu entfernen, weil Ihre 'for' Schleife nach der ersten Entfernung weitergeht. Sie können dem 'if'-Block einen' break' hinzufügen. – timgeb

0

wenn das Ihr Code und muss in einer Schleife und entfernt werden kann nur, wenn ich es so tun würde:

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´ 
Verwandte Themen