Python 协调更新列表并存储要调用的列表的函数
下面的函数存储两个数组“a”和“b”,用于线性回归图。调用该函数以使用coords(0,0)检索程序中其他位置的坐标,因此列表不会更新,而只是返回。然后在向每个列表添加坐标时调用coords(x,y)。但是,当添加它们时,它们不会被存储,因为当调用coords(0,0)检索更新的列表时,它只返回“a”和“b” 然后x=[4,5]y=[9,10]坐标(x,y)应该返回([0,1,2,3,4,5],[5,6,7,8,9,10])。我希望存储这些数据,这样coords(0,0)就不会添加任何其他内容,而是返回([0,1,2,3,4,5],[6,7,8,9,10]),而不仅仅是“a”和“b”。我该怎么做呢Python 协调更新列表并存储要调用的列表的函数,python,python-3.x,Python,Python 3.x,下面的函数存储两个数组“a”和“b”,用于线性回归图。调用该函数以使用coords(0,0)检索程序中其他位置的坐标,因此列表不会更新,而只是返回。然后在向每个列表添加坐标时调用coords(x,y)。但是,当添加它们时,它们不会被存储,因为当调用coords(0,0)检索更新的列表时,它只返回“a”和“b” 然后x=[4,5]y=[9,10]坐标(x,y)应该返回([0,1,2,3,4,5],[5,6,7,8,9,10])。我希望存储这些数据,这样coords(0,0)就不会添加任何其他内容,
def coords(x, y)
a = [0,1,2,3]
b = [5,6,7,8]
xList = a
yList = b
if x == 0:
return(xList, yList)
else:
xList = xList + x
yList = yList + y
return(xList, yList)
列表是可变的,您正在为每个函数调用创建
a
和b
。所以你需要让它们全球化。
试试这个:
a = [0,1,2,3]
b = [5,6,7,8]
def coords(x, y):
if x == 0:
return(a, b)
else:
a.extend(x)
b.extend(y) # Faster and recommended way of adding elements to a #list.
return(a, b)
变量名和函数名应遵循带有下划线的
小写形式。你能提供更多的上下文吗?为什么不能将数组存储在函数外部,甚至不能使用类?这是否回答了您的问题?是否.extend()
返回None
?我不确定@tomparko是如何做到这一点的……是的,删除了全局
和a=
,b=
修复了它。你真的运行了这个吗?谢谢@amc我很忙,没有看到。再次感谢。