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

Python 将for循环的输出存储到单个变量中,python,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+=t

我有一个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数据都可用

您不需要执行
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])

您不需要执行
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])

你想要什么?@CL.,但问题是它只给我一段数据,实际上有4段。但是,当我在for循环中键入“print txt”时,它会给我所有4个段落,我想这样做,但在for循环之外首先,使用更好的命名(您使用了两次数据)。最好对数据中的行执行
,并删除冗余赋值
element=data
@dnaranjo感谢您的建议!是啊,这是多余的……你想要什么?@CL.,但问题是它只给我一段数据,实际上有4段。但是,当我在for循环中键入“print txt”时,它会给我所有4个段落,我想这样做,但在for循环之外首先,使用更好的命名(您使用了两次数据)。最好对数据中的行执行
,并删除冗余赋值
element=data
@dnaranjo感谢您的建议!是啊,这是多余的…谢谢!我在找这个,谢谢!我在找这个。