我想在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”(定义的字符串)更早)
答案 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)