将for循环的输出存储到单个变量中

时间:2016-06-07 07:14:55

标签: python

我有一个for循环,它从SQLite3数据库中检索一页文本的bigram数据。

def bigram_db():
cursr.execute("SELECT * FROM trainedGrammar")
data = cursr.fetchall()
for data in data:
    element = data
    txt = element[0] #fetch first element of list
    txt += txt
return txt

我尝试使用txt + = txt但是当我尝试在函数bigram_db()之外打印缓存时,这只给了我一个值得bigram数据的段落。那么如何存储将由for循环输出的所有bigram数据,这些数据可以在for循环之外访问然后当我打印它时,我想要整个bigram数据数据库可用。

1 个答案:

答案 0 :(得分:2)

您不需要执行fetchall(),您可以直接在光标上进行迭代。并且您不能将相同的变量txt用于两个目的;在循环中,行txt = element[0]将覆盖其旧值。

您的功能应如下所示:

def bigram_db():
    cursr.execute("SELECT * FROM trainedGrammar")
    txt = ""
    for row in cursr:
        txt += row[0]
    return txt

或没有for循环:

def bigram_db():
    cursr.execute("SELECT * FROM trainedGrammar")
    return "".join([row[0] for row in cursr])