a = [9,8,2,3,8,3,5]
如何在不使用remove()删除8次出现的情况下删除2次出现的情况。
答案 0 :(得分:2)
以下是您可以使用(c, False)
和生成器来执行此操作的方法:
itertools.count
答案 1 :(得分:1)
remove()从列表中删除与指定值匹配的第一项。要删除第二个事件,可以使用del而不是remove。代码应该易于理解,我使用count来跟踪项目的出现次数,当count变为2时,该元素将被删除。
a = [9,8,2,3,8,3,5]
item = 8
count = 0
for i in range(0,len(a)-1):
if(item == a[i]):
count = count + 1
if(count == 2):
del a[i]
break
print(a)
答案 2 :(得分:1)
我不清楚为什么这个特定任务需要循环:
array = [9, 8, 2, 3, 8, 3, 5]
def remove_2nd_occurance(array, value):
''' Raises ValueError if either of the two values aren't present '''
array.pop(array.index(value, array.index(value) + 1))
remove_2nd_occurance(array, 8)
print(array)
答案 3 :(得分:0)
如果您需要删除第二个和以下目标项目,请使用此方法:
canvas {background: #ffffff; }
如果您需要删除第二个和以下出现的任何项目:
# deleting second and following occurrence of target item
a = [9,8,2,3,8,3,5]
b = []
target = 8 # target item
for i in a:
if i not in b or i != target:
b.append(i)
a=b
print(a)
# [9, 8, 2, 3, 3, 5]
现在,当您需要删除仅第二次目标项时:
# deleting any second and following occurence of each item
a = [9,8,2,3,8,3,5]
b = []
for i in a:
if i not in b:
b.append(i)
a=b
print(a)
# [9, 8, 2, 3, 5]