2016-04-30 46 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´ 
相關問題