2017-11-04 8 views
-3

つぶやきのリストをインポートしました。@ index [0]にWORD、index [1]に数値を含むcsvファイルをインポートしました。 CSVファイルには、数千の単語とそれに対応する値があります。forループは最後にインポートされたエントリのみを使用します

ツイートの1つの単語がCSVファイルの単語「 」に一致するかどうかを確認しようとしていますが、「成功」とそれに対応する数値が表示されます。 私のループでは、csvファイルの最後の単語と対応する値だけがシングルツイートに対して使用されています...私はこれをどのように修正しますか?

for single_tweet in tweets: 
    print(single_tweet) 
    print(line[0]) 
    if line[0] in single_tweet: 
     print("success",line[1]) 

これは、CSVファイルの形式である - それは、リストの:ファイル名の行のための : ライン= line.split( "") ライン[1] =行[1] .strip( "\ n") line [1] = float(line [1]) print(line)

+1

'line'の値はあなたのループ内で決して変化しません。 –

+0

どうすれば値を変更できますか? – vvv12308

答えて

0

私は答えを提案するつもりです。たぶんあなたはそれからいくつかの部分をつかんで、さらに開発することができます:)

まずcsvのようなファイルを作成してみましょう。

import io 

csvstr = u"""\ 
Monkey,1 
Lion,2 
Spider,3""" 

file = io.StringIO(csvstr) 

今度は、そのファイルのうち、辞書を作ってみよう:

tweets = ["I saw a cat", "I saw a lion"] 

そして最後にループ:

for ind, single_tweet in enumerate(tweets): 
    for word in single_tweet.split(): 
     searchword = word.title() # make first letter capital, e.g. cat -> Cat 
     if d.get(searchword): 
      print("Found {} , id: {} in tweet {}".format(word, ind+1, d[searchword])) 

プリント

d = dict(csv.reader(file)) # dictionary with word and index 
# d = {'Lion': '2', 'Spider': '3', 'Monkey': '1'} 

はのは、いくつかの偽のつぶやきを作成してみましょう。 :

Found lion , id: 2 in tweet 2 
+0

これは非常に役に立ちますが、私はcsvファイルを['hi'、-0.12]のような一連のリストとして保存しようとしています。リストを念頭に置いてこれを再フォーマットする方法はありますか? – vvv12308

関連する問題