Kombiniere Elemente von Listen, wenn eine Bedingung vorliegt

8

Wie kombiniere ich die Elemente einer Liste wenn eine Bedingung erfüllt ist.

Ich habe Beiträge zum Kombinieren von Elementen einer Liste gesehen, aber nicht zu einer Bedingung.

Ich habe eine Liste mit Wortlisten:

%Vor%

Wie kombiniere ich nur die Elemente, die ein ! enthalten?

Die Ausgabe würde beispielsweise so aussehen:

%Vor%

Ich habe es versucht:

%Vor%

aber habe:

%Vor%

Danke.

    
tmthyjames 11.12.2014, 18:17
quelle

3 Antworten

5

Verwenden Sie itertools.groupby :

%Vor%     
Ashwini Chaudhary 11.12.2014, 18:34
quelle
3

Hier ist meine Lösung:

%Vor%

Ausgabe:

%Vor%

bang_wl akkumuliert Wörter mit ! , bis es auf ein Wort trifft, das kein ! enthält. An diesem Punkt ist join s die Wörter in bang_wl und hängt an die output_wl Liste an.

    
vikramls 11.12.2014 18:39
quelle
1
%Vor%

Wenn Sie möchten, dass alle Wörter mit einem ! verknüpft werden, einschließlich Wörter, die durch Wörter getrennt sind, die kein ! enthalten, d. h. ['humpty', 'dumpty!', 'professor!', 'grumpy!',"foo","bar!"] würde ['humpty', 'foo', 'dumpty!,professor!,grumpy!,bar!'] :

%Vor%

Einige Timings zeigen @vikramls ist die effizienteste und die itertools Lösung ist die am wenigsten effiziente.:

%Vor%

Wenn Sie möchten, dass die Wörter mit einem ! enden:

%Vor%     
Padraic Cunningham 11.12.2014 18:51
quelle

Tags und Links