Python不更新列表值

时间:2018-11-06 19:24:16

标签: python list printing

在我的python文件的顶部,创建一个列表:

table = [[]]

然后我有一个方法来设置列表的值:

def setTable():
    table = list(csv.reader(open("vplan/temp.csv")))
    print(table)

如果我运行它,表的值将被打印出来,如它应该的那样。但是,如果我尝试在方法之外打印它

print(table)

它只打印“ [[]]”-我不明白为什么。 我希望有人可以向我解释这一点,我不经常使用Python。

2 个答案:

答案 0 :(得分:0)

方法内部的表变量与方法外部的表变量不同,以便尝试使用相同的变量:

table = [[]]

def setTable(table):
    table = list(csv.reader(open("vplan/temp.csv")))
    return table

print(setTable(table))

我希望这对您有所帮助,因为我做了很多python编程,所以我对这种语言非常熟悉。我不确定在开始时何时定义表变量时需要像这样分配它:[[]],但是如果那是您需要代码起作用的方式,那么就可以使用它。如果它不能像这样[[]]一起使用,请尝试这样:[]。希望对您有所帮助。

答案 1 :(得分:0)

根据LEGB范围规则(您可以在此处阅读:https://realpython.com/python-scope-legb-rule/#using-the-legb-rule-for-python-scope),创建的变量位于 Global Scope (全局范围),而函数内部的变量为本地范围

默认情况下,您无法访问函数内的 Global Scope 变量<iframe className="embed-responsive-item" src={ generic_profile.videoURL == undefined ? "https://www.youtube.com/embed/wYxDJOFgDw0" : cloudinayURL } frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen ></iframe> (它会创建一个本地范围变量,其名称与您可以在函数内访问的名称相同)。 相反,您必须告诉python您正在尝试将其分配给全局变量table

这是您需要编写的代码:

table