In Python remove()
entfernt das erste Vorkommen eines Wertes in einer Liste.
So entfernen Sie todo Vorkommen eines Wertes in einer Liste?
Das ist es, was ich im Sinn habe:
>>> remove_values_from_list([1, 2, 3, 4, 2, 2, 3], 2)
[1, 3, 4, 3]
In Python remove()
entfernt das erste Vorkommen eines Wertes in einer Liste.
So entfernen Sie todo Vorkommen eines Wertes in einer Liste?
Das ist es, was ich im Sinn habe:
>>> remove_values_from_list([1, 2, 3, 4, 2, 2, 3], 2)
[1, 3, 4, 3]
Ich glaube, dies ist wahrscheinlich schneller als jeder andere Weg, wenn Sie sich nicht um die Reihenfolge der Listen kümmern, wenn Sie sich um die endgültige Reihenfolge kümmern, speichern Sie die Indizes aus dem Original und sortieren Sie danach.
category_ids.sort()
ones_last_index = category_ids.count('1')
del category_ids[0:ones_last_index]
Lassen Sie
>>> x = [1, 2, 3, 4, 2, 2, 3]
Die einfachste und effizienteste Lösung ist, wie bereits zuvor erwähnt
>>> x[:] = [v for v in x if v != 2]
>>> x
[1, 3, 4, 3]
Eine andere Möglichkeit, die weniger Speicherplatz beanspruchen sollte, aber langsamer ist, ist
>>> for i in range(len(x) - 1, -1, -1):
if x[i] == 2:
x.pop(i) # takes time ~ len(x) - i
>>> x
[1, 3, 4, 3]
Zeitliche Ergebnisse für Listen der Länge 1000 und 100000 mit 10% übereinstimmenden Einträgen: 0,16 gegenüber 0,25 ms und 23 gegenüber 123 ms.
lists = [6.9,7,8.9,3,5,4.9,1,2.9,7,9,12.9,10.9,11,7]
def remove_values_from_list():
for list in lists:
if(list!=7):
print(list)
remove_values_from_list()
Ergebnis: 6.9 8.9 3 5 4.9 1 2.9 9 12.9 10.9 11
lists = [6.9,7,8.9,3,5,4.9,1,2.9,7,9,12.9,10.9,11,7]
def remove_values_from_list(remove):
for list in lists:
if(list!=remove):
print(list)
remove_values_from_list(7)
Ergebnis: 6.9 8.9 3 5 4.9 1 2.9 9 12.9 10.9 11
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.