Für eine Liste können Sie eine Listenkomposition verwenden. So erstellen Sie beispielsweise b
eine Kopie a
ohne das 3. Element:
a = range(10)[::-1] # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
b = [x for i,x in enumerate(a) if i!=3] # [9, 8, 7, 5, 4, 3, 2, 1, 0]
Dies ist sehr allgemein und kann mit allen iterablen Elementen einschließlich Numpy-Arrays verwendet werden. Wenn Sie ersetzen []
mit ()
, b
wird ein Iterator statt einer Liste sein.
Oder Sie können dies direkt tun mit pop
:
a = range(10)[::-1] # a = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
a.pop(3) # a = [9, 8, 7, 5, 4, 3, 2, 1, 0]
In numpy könnten Sie dies mit einer booleschen Indizierung tun:
a = np.arange(9, -1, -1) # a = array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
b = a[np.arange(len(a))!=3] # b = array([9, 8, 7, 5, 4, 3, 2, 1, 0])
Dies ist im Allgemeinen viel schneller als das oben aufgeführte Listenverständnis.
numpy.concatenate
.Der einfachste Weg, den ich gefunden habe, war:
das wird Ihr
mylist
ohne das Element am Index erzeugenx
.quelle
Wenn Sie Numpy verwenden, kann ich mir am nächsten vorstellen, eine Maske zu verwenden
Ähnliches kann mit
itertools
ohne erreicht werdennumpy
quelle
np.arange(len(arr)) != 3
die Maske verwenden, weil sie dann eingefügt werden kann, zarr[~(np.arange(len(arr)) == 3)]
. B. oder was auch immer.Verwenden Sie
np.delete
! Es löscht eigentlich nichts an Ort und StelleBeispiel:
quelle
Ich werde eine funktionale (unveränderliche) Möglichkeit bieten, dies zu tun.
Die übliche und einfache Methode ist das Schneiden:
Ausgabe:
Listenverständnis verwenden:
Ausgabe:
Filterfunktion verwenden:
Ausgabe:
Maskierung verwenden. Die Maskierung wird durch die Funktion itertools.compress in der Standardbibliothek bereitgestellt:
Ausgabe:
Verwenden Sie die Funktion itertools.filterfalse aus der Python-Standardbibliothek
Ausgabe:
quelle
Wenn Sie den Index vorher nicht kennen, ist hier eine Funktion, die funktionieren wird
quelle
Beachten Sie, dass einige Ansätze fehlschlagen würden, wenn die Variable eine Liste von Listen ist. Beispielsweise:
Verwenden Sie für den allgemeinen Fall
quelle
Wenn Sie den letzten oder den ersten ausschneiden möchten, gehen Sie folgendermaßen vor:
Wenn Sie 1 zu 2 ändern, werden die ersten 2 Zeichen entfernt, nicht das zweite. Hoffe das hilft noch!
quelle