我有这段代码:
latitude = pd.DataFrame()
longitude = pd.DataFrame()
datasets = []
datasets.append(latitude)
datasets.append(longitude)
def fun(key, job):
global latitude
global longitude
if(key == 'LAT'):
latitude = job.copy()
elif(key == 'LON'):
longitude = job.copy()
for d in datasets:
print(d.shape)
在此之后:Why does assigning to my global variables not work in Python?我使用了global关键字来确保正确引用变量。但是,值不会更新。有什么建议?我已经验证了if语句是正确的,因为我能够在其中打印一些内容。
输出:
(0, 0)
(0, 0)
此外,我正在使用spyder,我可以看到该列表包含空数据帧,并且全局变量也是空的。
答案 0 :(得分:1)
好吧,你遇到的问题是你的程序指向datasets.append(latitude)
中的某个值,当你更改global latitude
latitude = job.copy()
时,你改变了全局的价值变量而不是列表datasets
中的变量。
如果您想要查看更改后的值打印latitude
,您会看到值已更改。或更改datasets[0]
中的值以获取循环中的纬度值。