簡體   English   中英

給定一個值列表,刪除第一次出現

[英]Given a list of values remove first occurrence

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)的第一個出現值。 我對如何執行此操作感到有些困惑,因為我確實刪除了該值,但我也刪除了給定的其他值。 我只想刪除第一個給定的值。

很簡單,使用list.remove

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

如果這是您的代碼並且需要在循環中並且僅刪除一次,我會這樣做:

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´

這很簡單。 只需在循環中使用 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM