我有此代码:
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)
之后:为什么分配给我的全局变量在Python中不起作用?我已经使用了全局关键字来确保正确引用变量。但是,值未更新。有建议吗?我已经验证了if语句是正确的,因为我能够在其中打印某些内容。
输出:
(0, 0)
(0, 0)
此外,我正在使用Spyder,并且可以看到该列表包含空数据帧,并且全局变量为空。
o.k,您遇到的问题是,您可以在datasets.append(latitude)
中指向某个值,当您更改global latitude
latitude = job.copy()
时,您会更改全局变量的值列表中的一个datasets
。
如果您想查看更改的值打印出latitude
,并且您会发现该值已更改。或更改循环中纬度值的datasets[0]
中的值。