2016-11-19 5 views
0

ich eine Liste der Liste von Strings wie folgt aussieht (Teilmenge von einer langen Liste mit der folgenden Zeile in Funken‚NoneType‘ Objekt nicht iterable ist während itertools.chain.from_iterable mit

l = text.map(lambda x: tokenize(x[0])).collect() 

Ausgabe von l erzeugen):

[['@always_nidhi'], ['@always_nidhi', '@OnlyDancers', '@IcelandNatural'], ['@always_nidhi', '@OnlyDancers', '@IcelandNatural']] 

Es ist eine Liste der Liste der Zeichenfolgenwerte. Ich möchte eine eindeutige Menge von Namen und daher ist mein erster Schritt, es mit der folgenden Zeile zu verbinden. (Später werde ich Satz verwenden eindeutige Werte zu erhalten)

list(itertools.chain.from_iterable(l)) 

Aber ich bekomme diese Fehlermeldung

'NoneType' Objekt Iterable nicht

Kann jemand bitte helfen.

+0

Könnten Sie mehr Code posten? Dieser Fehler legt nahe, dass Ihre Liste "l" gleichbedeutend mit "Keine" ist. Führt mich zu der Annahme, dass in Ihrer Quelle noch etwas anderes vor sich geht. – ospahiu

+0

[Fangen Sie die Exception] (https://docs.python.org/3/tutorial/errors.html#handling-exceptions) und drucken '' 'l''' - ist da etwas drin? – wwii

+0

Aus den Antworten habe ich die Lösung erhalten, dass mein vorheriger Code einen Fehler hat, der diesen Fehler gibt. Ich debugging diesen Teil jetzt –

Antwort

1

Nicht in der Lage, Ihren Fehler zu replizieren, funktioniert das folgende auf Python 2.7.

>>> print set(itertools.chain.from_iterable(l)) 
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural']) 

Sie könnten jedoch den folgenden Generator verwenden. Es entspricht funktionell chain().

>>> print set(inner for sub_list in l for inner in sub_list) 
set(['@OnlyDancers', '@always_nidhi', '@IcelandNatural']) 
+0

Von den Antworten, die ich erreichte, die Lösung, dass mein vorheriger Code einen Fehler hat, der diesen Fehler gibt. Ich debugge diesen Teil jetzt –

Verwandte Themen