2017-09-21 5 views
0

Ich habe ein Wörterbuch Daten und eine Folge von Zeitfrequenz enthält unten gezeigt:Python, Zu den Listenelemente mit einem Wörterbuch enthält Liste von Tupeln

{ 
    'Wed Aug 09': [('夏', 49), ('日本', 48), ('海', 39), ('', 33), ('日', 28), ('写真', 25), ('まし', 24), ('', 24), ('️', 23), (' ソフトクリーム', 22)], 
    'Thu Aug 10': [('夏', 1010), ('日本', 672), ('暑い', 501), ('海', 379), ('型', 253), ('日', 242), ('人', 223), ('まし', 209), ('い い', 159), ('雨', 149)] 
} 

Aus all diesen Begriffen ich eine Liste von Schlüsselwörtern haben, für die ich möchte alle Daten zusammenfassen:

key_words = ["夏", "海", "暑い", "雨", "秋", "寒い", "台風", "冬"] 

ich möchte meine Ausgabe aussehen:

{ 
    'Wed Aug 09': [('夏', 49), ('海', 39),('暑い', 34), ('雨', 26), ('秋', 23), ('寒い', 15), ('台風', 12), ('冬', 9) ], 
    # ... 
} 

Dies extrahiert im Wesentlichen die Schlüsselwörter aus dem Wörterbuch mit der Liste der Tupel.

Mein Code für wie folgt aussieht Extrahieren:

result = dict() 
for key, value in date_words.items(): 
    if key_words in date_words[value]: 
     result[key] = value 
print(result) 

Aber es gibt eine leere dict. Könnte mir bitte jemand helfen?

+0

was ist 'Wed Aug 09'? Woher kommt '('冬', 9)'? Unklar, zum Schließen stimmend – RomanPerekhrest

+0

Warum enthält Ihre erwartete Ausgabe '('暑 い', 34), ('雨', 26), ('秋', 23), ('寒 い', 15), ('台風', 12), ('冬', 9) '? Ihre Eingabedaten und die erwartete Ausgabe scheinen nicht übereinzustimmen. –

+0

Der Ausgang habe ich zufällig nach Zahlen sortiert. Die Idee besteht darin, eine Visualisierung mit den erforderlichen Schlüsselwörtern zu erstellen, die Eingabedaten sind die tf-idf aller an diesem Datum abgerufenen Tweets. Nach der Berechnung des tf-idf möchte ich in einem Live-Streaming-Diagramm die Ergebnisse der Term-Häufigkeit jedes Keywords darstellen. Hoffe das macht Sinn ... –

Antwort

0

Sie fragen, ob es ein einzelnes Listenobjekt mit den gleichen Zeichenfolgen in Ihrem Wert gibt. Es gibt keine Tupel mit jeweils zwei Elementen. Sie müssen stattdessen für die Kreuzung testen.

Ich würde machen key_words ein gesetzt statt:

key_words = {"夏", "海", "暑い", "雨", "秋", "寒い", "台風", "冬"} # use set([....]) in Python 2 

und verwenden Sie eine Liste Verständnis alle passenden Tupeln zu extrahieren:

result = {} 
for key, value in date_words.items(): 
    result[key] = [(k, v) for k, v in value if k in key_words] 

Das kann weiter in einem Wörterbuch Verständnis kombiniert werden:

result = {key: [(k, v) for k, v in value if k in key_words] 
      for key, value in date_words.items()} 
+0

arbeiten jetzt danke !!! –

Verwandte Themen