2012-10-07 3 views

Antwort

12

Der direkteste Weg, dies zu tun mit Listen ist eine Liste Verständnis zu verwenden:

c = [b[i] for i in index] 

Aber je nach genau das, was wie Ihre Daten aussieht und was Sie sonst noch brauchen, mit ihm zu tun, könnten Sie numpy Arrays verwenden - in diesem Fall:

c = b[index] 

tun würde, was Sie wollen, und würde vermeiden der potentielle Speicheraufwand für große Slices - numpy Arrays werden effizienter gespeichert als Listen, und Slicing nimmt eine Sicht in das Array auf, anstatt eine partielle Kopie zu erstellen.

+0

dank lvc Ich habe diese Fehlermeldung c = b [index] Traceback (jüngste Aufforderung zuletzt): Datei "" Linie 1 in Typeerror: Liste Indizes müssen ganze Zahlen sein , nicht Liste –

+0

@Gianni, wie ich in meiner Antwort sagte, das wird funktionieren, wenn Sie numpy Arrays anstelle von Listen verwenden. Sie können alle möglichen interessanten Dinge als Indizes nehmen; Listen können nur ganze Zahlen (und Slices mit ganzzahligen Argumenten) enthalten. – lvc

+1

+1 für die Verwendung eines Listenverständnisses. Es ist eine gute Sache, Anfänger zu unterrichten. –

Verwandte Themen