在Python循环外部访问变量

在Python循环外部访问变量,python,Python,我知道我贴出的问题以前已经被回答过了,但我试着使用贴出的答案,但在我的案例中效果不好。 问题是我试图将while循环中的多个条目存储到一个变量中,并且我试图在这个循环之外访问这个变量。 输出只是第一行,就好像循环没有迭代整个文件一样。 这是我写的代码 import csv keyword = None with open('test.csv', 'rb') as f: reader = csv.reader(f, delimiter='\t') headers = r

我知道我贴出的问题以前已经被回答过了,但我试着使用贴出的答案,但在我的案例中效果不好。 问题是我试图将while循环中的多个条目存储到一个变量中,并且我试图在这个循环之外访问这个变量。 输出只是第一行,就好像循环没有迭代整个文件一样。 这是我写的代码

import csv

keyword = None

with open('test.csv', 'rb') as f:
      reader = csv.reader(f, delimiter='\t')
      headers = reader.next()
      for row in reader:
           keywords = (row[0].strip())

print (keywords) 
测试文件具有以下结构:

symbol
code_id_164751
code_id_313270
code_id_96306
code_id_494305
code_id_468128
code_id_303451
code_id_274562
代码的输出只给我第一个代码\u id:

code_id_164751

所需的输出是整个列表。即使我在while循环之前声明了变量关键字,但似乎我无法将其置于循环之外(这是我在其他问题中看到的建议)

这与在循环内部或外部定义变量无关。您将
关键字
定义为单个变量,并在每次循环中重新分配它,因此它自然只会得到最后一个值

相反,您应该将其定义为一个列表,并每次追加值:

keywords = []

...
        keywords.append(row[0].strip())

这与在循环内部或外部定义变量无关。您将
关键字
定义为单个变量,并在每次循环中重新分配它,因此它自然只会得到最后一个值

相反,您应该将其定义为一个列表,并每次追加值:

keywords = []

...
        keywords.append(row[0].strip())
你需要

keywords.append(row[0].strip())
你需要

keywords.append(row[0].strip())

请尝试将结果附加到旧结果。 因为在代码中,您只需分配
keywords=(行[0].strip())
因此它将替换旧关键字


所以将
keywords=(行[0].strip())
更改为
keywords+=(行[0].strip())
请尝试将结果附加到旧结果。 因为在代码中,您只需分配
keywords=(行[0].strip())
因此它将替换旧关键字



因此,将
keywords=(行[0].strip())
更改为
keywords+=(行[0].strip())

作为一个开始,您需要将
关键字
多元化,您似乎在每次迭代时都要重新分配
关键字
。您可以在循环的每次迭代中替换关键字的值。您可以在循环之外获得它,但是,
关键字
在每次迭代中都被重新定义。如果它被构建成一个列表,那么它也将是您循环中的一个列表。这真的是你想要的吗?我试着把它写成一个列表,但我无法将它从循环外获取。首先,你需要将
关键字
多元化。你似乎在每次迭代时都重新分配
关键字
。你在循环的每次迭代中替换关键字的值。你可以在循环外获得它,但是,
关键字
在每次迭代中都被重新定义。如果它被构建成一个列表,那么它也将是您循环中的一个列表。这真的是你想要的吗?我试着把它写成一个列表,我无法把它从循环中取出来。你需要把
关键字
@Mondher:Change
关键字=[]
改成
关键字=[]
谢谢你,我刚刚意识到这一点再次抛出代码。你需要把
关键字
@Mondher:Change
关键字=[]
to
keywords=[]
谢谢,我刚刚意识到这一点,再次抛出代码。这可能是基于'tdowtheopwants.Ya,但在这一行,他们也会将结果附加到列表或附加到简单字符串。这可能是基于'tdowtheopwants.Ya,但在这一行,他们也会将结果附加到列表或附加到简单字符串。