Python: Einzeiler, um eine Operation an Elementen in einem 2-D-Array (Liste von Listen) durchzuführen?

8

Ich habe eine Liste von Listen, die jeweils eine unterschiedliche Anzahl von Strings enthalten. Ich möchte diese allesamt (in effizienter Weise) in Ints umwandeln, fühle mich aber etwas dichter, da ich es nicht für mein Leben erreichen kann. Ich habe versucht:     newVals = [int (x) für x in [Zeile für Zeilen in Werten]]

Wo "Werte" ist die Liste der Listen. Es besagt, dass x eine Liste ist und daher nicht das Argument if int () sein kann. Offensichtlich mache ich hier etwas Dummes, was ist das? Gibt es ein akzeptiertes Idiom für so etwas?

Wie immer, vielen Dank im Voraus.

    
aped 17.06.2011, 05:20
quelle

5 Antworten

6

Dies lässt die Ints verschachtelt

%Vor%

Wenn Sie möchten, dass sie abgeflacht sind, ist das auch nicht schwer

für Python3 map() gibt einen Iterator zurück. Sie könnten

verwenden %Vor%

, aber Sie bevorzugen vielleicht die verschachtelten LCs in diesem Fall

%Vor%     
John La Rooy 17.06.2011, 05:24
quelle
8

Wie wäre es mit:

%Vor%     
JBernardo 17.06.2011 05:24
quelle
1

Sie verwenden einfach falsche Reihenfolge und Klammern - sollte sein:

%Vor%

Oder wenn Sie eine Liste der Liste an der Ausgabe benötigen, dann:

%Vor%     
Artsiom Rudzenka 17.06.2011 05:26
quelle
0

Ein hässlicher Weg ist die Verwendung von evalf:

%Vor%

Wenn Sie nicht alle Ihre Zahlen in einem Array haben, könnten Sie gehen:

%Vor%     
robert king 17.06.2011 06:43
quelle
0

Eine andere Problemumgehung

%Vor%     
M Younas 20.03.2018 08:22
quelle

Tags und Links