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)
的第一个出现值。我有点困惑如何做到这一点,因为我删除了值,但我也删除了给定的其他值。我只想删除第一个给定值。
答案 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