访问循环Python之外的变量

时间:2016-03-14 14:02:40

标签: python

我知道我发布的问题之前已经得到了解答,但我尝试使用已发布的答案,但在我的案例中并没有成功。 问题是我试图将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

代码的输出只给我第一个code_id:

code_id_164751

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

3 个答案:

答案 0 :(得分:3)

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

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

keywords = []

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

答案 1 :(得分:0)

你需要

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

答案 2 :(得分:0)

请尝试将结果附加到旧结果。 因为在你的代码中你只需要分配
keywords = (row[0].strip())所以它会替换旧的关键字。

所以将keywords = (row[0].strip())更改为keywords += (row[0].strip())