Python menetapkan pernyataan perubahan nilai, mengapa ia tidak berfungsi?
淡淡烟草味
淡淡烟草味 2017-06-28 09:25:55
0
1
813

Saya ingin menetapkan beberapa data dalam fail kepada nilai asal, dan menetapkan nilai yang hilang kepada 0, tetapi keputusan akhir adalah semua 0. Apa yang salah dengan kod
Keterangan gambar data asal
Memproses keterangan gambar

#!/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
淡淡烟草味
淡淡烟草味

membalas semua(1)
洪涛

Memandangkan anda range()跑完了再去遍历的datas,由于range()是个迭代函数,所以在运行datasfor循环的时候,i的值一直是60303,所以也就不满足if word_index == i menetapkan syarat ini, kecuali item 60303, semua yang lain masih nilai awal. Malah, disyorkan untuk menukarnya seperti ini

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

Anda boleh menilai terus temp_dict[word_index]是否存在为0,如果没有定义,则应该是None di sini, jadi bahagian ini ditukar kepada

if temp_dict[word_index] == 0:
    temp_dict[word_index] = tfidf
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan