Wie kann ich eine Liste mit Dart in gleiche Teile aufteilen oder aufteilen?

7

Angenommen, ich habe eine Liste wie:

%Vor%

Ich hätte gerne eine Liste von Listen mit je 2 Elementen:

%Vor%

Was ist ein guter Weg, dies mit Dart zu tun?

    
Seth Ladd 08.03.2014, 19:34
quelle

7 Antworten

9
%Vor%     
Alan Knight 09.03.2014 04:49
quelle
7

Quiver (Version & gt; = 0.18) liefert partition() als Teil seiner iterablen Bibliothek (Import 'Paket: köcher / iterables.dart '). Die Implementierung gibt lazily-computed Iterable zurück, was sie ziemlich effizient macht. Verwenden Sie als:

%Vor%

Das zurückgegebene pairs ist ein Iterable<List> , das wie folgt aussieht:

%Vor%     
cbracken 09.03.2014 19:01
quelle
5

Hier ist ein anderer Weg:

%Vor%     
Seth Ladd 08.03.2014 19:43
quelle
3

Dies funktioniert mit Listen mit ungerader Länge:

%Vor%

Vielleicht möchten Sie vielleicht einen Fehler ausgeben oder einen Füllwert angeben, wenn die Listenlänge nicht gerade ist.

    
robert king 09.03.2014 06:04
quelle
3

Ich würde vorschlagen, ein iterables der Paare zu erstellen und .toList zu verwenden, wenn Sie es wirklich als Liste benötigen. Diese Lösung kann auch auf alle iterierbaren und nicht nur auf eine Liste angewendet werden. Erstens, eine einfache Lösung, die nur auf Listen funktioniert (mit gerader Länge) (wie die Lösung von Robert King):

%Vor%

Die allgemeinere Lösung ist komplex:

%Vor%

Es scheint, dass es tatsächlich einfacher ist, einen Strom von Paaren aus einem Strom zu erzeugen, als ein iterbares Paar aus einem iterierbaren zu machen.

    
whessedk 09.03.2014 15:26
quelle
1

Hier ist eine Möglichkeit:

%Vor%     
Seth Ladd 08.03.2014 19:34
quelle
0

Beeinflusst von @ Alans Antwort oben und Erweiterung der Liste , das Äquivalent von F # chunkedBySize und gefenstert und Durchschnitt könnte sein:

%Vor%

Die Implementierung ist hier

zu sehen     
Hasan A Yousef 03.03.2018 08:50
quelle

Tags und Links