I have list in python which has following entries
name-1
name-2
name-3
name-4
name-1
name-2
name-3
name-4
name-1
name-2
name-3
name-4
I would like remove name-1 from list except its first appearance -- resultant list should look like
name-1
name-2
name-3
name-4
name-2
name-3
name-4
name-2
name-3
name-4
How to achieve this ?
def remove_but_first( lst, it):
first = lst.index( it )
# everything up to the first occurance of it, then the rest of the list without all it
return lst[:first+1] + [ x for x in lst[first:] if x != it ]
s = [1,2,3,4,1,5,6]
print remove_but_first( s, 1)
Assuming name-1 denotes "the first element":
[names[0]] + [n for n in names[1:] if n != names[0]]
EDIT: If the overall goal is to de-duplicate the entire list, just use set(names).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With