Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python列表在迭代14时超出范围?_Python - Fatal编程技术网

python列表在迭代14时超出范围?

python列表在迭代14时超出范围?,python,Python,我有一个索引列表,指向数据库中的一个术语 这是我的密码: for doc in TSS: tokens = word_tokenize(doc[1]) tokens = [token.lower() for token in tokens if len(token) > 2] tokens = [token for token in tokens if token not in words] tokens = [stemmer.stem(token) for

我有一个索引列表,指向数据库中的一个术语

这是我的密码:

for doc in TSS:
    tokens = word_tokenize(doc[1])
    tokens = [token.lower() for token in tokens if len(token) > 2]
    tokens = [token for token in tokens if token not in words]
    tokens = [stemmer.stem(token) for token in tokens]
    final_tokens.extend(tokens)
    sql = """SELECT id_term FROM tss_terms WHERE tss_terms.term IN %s"""
    pram = [final_tokens]
    cursor.execute(sql, pram)
    ids = list(cursor.fetchall())
    count = 0
    data[doc[1]] = {'tf': {}, 'ntf': {}}
    for token in final_tokens:
        data[doc[1]]['tf'][token] = freq(token,final_tokens)
        data[doc[1]]['ntf'][token] = tf(token,final_tokens)
        query = """INSERT INTO tss_term_freq(id_term,id_doc,tf,normalized_tf)VALUES(%s,%s,%s,%s)"""
        param = [ids[count],doc[0],data[doc[1]]['tf'][token],data[doc[1]]['ntf'][token]]
        #cursor.execute(query, param)
        count = count + 1
    del final_tokens[:]
    print count
ids列表总是出现错误:列表索引在第14次迭代时超出范围

TSS[13]的值如下所示:

(5927L, 'PERHITUNGAN POHON KELAPA SAWIT PADA CITRA FOTO UDARA\r\nYANG BERBASIS BENTUK MAHKOTA POHON')
(6698L, 'SINKRONISASI WAKTU METER LISTRIK BERDASARKAN GLOBAL POSITIONING SYSTEM (GPS) PADA SUPERVISORY CONTROL AND DATA ACQUISITION (SCADA) BERBASIS WEB')
那么TSS[14]的值如下所示:

(5927L, 'PERHITUNGAN POHON KELAPA SAWIT PADA CITRA FOTO UDARA\r\nYANG BERBASIS BENTUK MAHKOTA POHON')
(6698L, 'SINKRONISASI WAKTU METER LISTRIK BERDASARKAN GLOBAL POSITIONING SYSTEM (GPS) PADA SUPERVISORY CONTROL AND DATA ACQUISITION (SCADA) BERBASIS WEB')
TSS包含我所在大学的文档ID和论文标题

谁能指出我的错误并改正它


请帮助:

列表id的声明方式是错误的。 我不明白你在那里做什么。 但是,如果希望存储fetchall函数返回的所有值,则使用for循环来执行此操作。 声明一个空的列表id。 id=[] 使用for循环获取所有值。 要在列表中保存值,请使用
id.appendvalue

哪一行是问题?共享堆栈跟踪以及TSS[13]和TSS[14]的值。参数行是问题所在,我在下面的行中进行了注释,以便它不会执行查询命令。基于这么多信息,我们只能告诉您,在参数=id[count]、doc[0]、data[doc[1]['tf'][token]和data[doc[1]['ntf'][token]缺少任何一个值。为什么不打印每个值并自己检查出了什么问题?:您的建议与现有的代码部分做了完全相同的事情。如果现有的代码没有更高的效率,我也不会感到惊讶。哇,只有很小的差异影响这么大。无论如何,谢谢: