您的位置:首頁技術文章
文章詳情頁

python設置了值更改語句,為什么沒起作用?

瀏覽:73日期:2022-06-27 11:01:33

問題描述

我想將文件的數據有的則設為原來的值,沒有的值則設為0,可是最后結果都是0,代碼哪里不正確?原始數據圖片描述處理結果 圖片描述

#!/usr/bin/python#coding:utf-8train_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] = tfidfexcept: 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()是個迭代函數,所以在運行datas的for循環的時候,i的值一直是60303,所以也就不滿足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

標簽: Python 編程
相關文章:
国产综合久久一区二区三区