【发布时间】:2015-11-25 17:37:08
【问题描述】:
我是 Python 新手,因此我的问题看起来很愚蠢。 我尝试制作一些制作二维数组的程序。一个函数将项目放入列表并返回一个数组。然后,第二个函数将第一个函数的结果放入外部列表中。 我的程序如下所示:
def get_matrix():
d = some_dict
matrix = list()
while len(matrix)<3:
row = get_row(d)
matrix.append(row)
return matrix
def get_row(dict):
array = list()
for t in range(3):
a = dict.popitem()
array.append(a)
return array
some_dict = dict()
for x in range(9):
some_dict[x] = "a"+str(x)
print(some_dict)
print(get_matrix())
效果很好。但是,如果我不想更改外部函数中的列表 d 而只是这样做:
def get_matrix():
d = some_dict
matrix = list()
while len(matrix)<3:
row = get_row(d)
matrix.append(row)
for x in row:
d.pop(x)
return matrix
换句话说,我想将整个 dict 保留在外部函数中。 其实我想知道如果我们只改变内部函数参数给出的dict,为什么外部值会改变?
【问题讨论】:
-
你能举一个输入和预期输出的例子吗?这样问题就更容易理解了。
-
请阅读this
-
题外话:不要给变量与
dict这样的Python内置函数同名,这只会让你伤心。 -
@Adam,感谢您的回复,但我想我已经得到了答案
-
@Pynchia,是的,我的代码并不完美,但在这个示例中,我确实最小化了我的主要代码。
标签: python arrays list function scope