python設定了值更改語句,為什麼沒起作用?
淡淡烟草味
淡淡烟草味 2017-06-28 09:25:55
0
1
787

我想將檔案的資料有的則設為原來的值,沒有的值則設為0,可是最後結果都是0,程式碼哪裡不正確?
原始資料圖片描述
處理結果圖片描述

#!/usr/bin/python
#coding:utf-8
train_data = {}
input_data = open("train_tfidf.txt", "r").readlines()
output_data = open("single_tfidf.txt", "w")
for line in input_data:
    temp_dict = {}
    for i in range(60304):
        temp_dict[i] = 0
    datas = line.split()
    for ele in datas:
        try:
            word_index = ele.split(":")[0]
            tfidf = ele.split(":")[1]
            if word_index == i:
                temp_dict[i] = tfidf
        except:
            continue
    # print temp_dict
    # print word_index, tfidf
    output_data.write(str(temp_dict))
    output_data.write('\n')

  [1]: /img/bVPJMi
  [2]: /img/bVPJMV
淡淡烟草味
淡淡烟草味

全部回覆(1)
洪涛

由於你range()跑完了再去遍歷的datas,由於range()是個迭代函數,所以在運行datasfor循環的時候,i的值一直是,所以也就不滿足if word_index == i這個條件了,所以除了60303那項,其他的都還是初始值。其實建議這樣改

if word_index == i:
    temp_dict[i] = tfidf

這邊可以直接判斷temp_dict[word_index]是否存在為0,如果沒有定義,則應該是None,所以這塊改為

if temp_dict[word_index] == 0:
    temp_dict[word_index] = tfidf
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!