在python 2.6中如何在for循环中更改全局变量

时间:2010-10-19 14:00:49

标签: python for-loop global-variables python-2.x

我想在for循环中更改变量的值,但在循环结束时更改新保留的变量

我的尝试(有点简化我正在做的事情)

SNP是一个列表,compar_1是一个列表列表

line_1 = empty_row
for SNP1 in compar_1:
    global line_1
    if SNP[3] == SNP1[3] 
        compare_line_1 = SNP1 
print = line_1
output_file.write(to_print)

如果它在循环中找到匹配项,我希望它将变量更改为那样,这就是打印的内容,如果在for循环中找不到匹配项,我希望它打印“empty_row”(定义的字符串)更早)

3 个答案:

答案 0 :(得分:3)

如果您曾尝试更改变量,您会看到它只是有效。 Python没有单独的循环范围。

答案 1 :(得分:1)

for循环不影响Python中的变量范围(就像它们在C中一样)

如果您在函数中使用变量,那么当您引用[var]表示全局变量时,可以使用global [var]来声明。

This是对Python范围的一个不错的概述

答案 2 :(得分:0)

for SNP1 in compar_1:
    if SNP[3] == SNP1[3]:
        line_1 = SNP1 
        break
else:
    line_1 = empty_row
to_print = line_1
output_file.write(to_print)