我想调用第二个函数并使它使用第一个函数的结果,但是不确定如何执行此操作。我不能使“数组”成为局部变量,因为它依赖于第一个函数。有人可以帮忙吗?谢谢。
def main(n):
array = []
for x in range(n):
array.append(random.randint(0, 5))
print(array)
def sortarray(list):
newarray = []
for i in range(len(array)):
newarray.append(array.pop.array(array.index(max(x))))
print(newarray)
答案 0 :(得分:1)
如果要将结果传递给第二个函数,则第一个函数必须返回某些内容。请参见以下示例:
def main(n):
array = []
for x in range(n):
array.append(random.randint(0, 5))
return array
def sortarray(array):
newarray = []
for i in range(len(array)):
newarray.append(array.pop.array(array.index(max(x))))
return newarray
您可以像下面这样使用它们:
print(sortarray(main(5)))
顺便说一句,如果您对排序感兴趣-您绝对应该结帐Sorting HOW TO。
更新
这将产生以下错误:
<ipython-input-1-d0f89860ca87> in sortarray(array)
8 newarray = []
9 for i in range(len(array)):
---> 10 newarray.append(array.pop.array(array.index(max(x))))
11 return newarray
AttributeError: 'builtin_function_or_method' object has no attribute 'array'
如您所见,它指向以下行:
newarray.append(array.pop.array(array.index(max(x))))
问题出在array.pop.array
调用中。 array.pop
是一个函数。
答案 1 :(得分:0)
为什么您将变量“列表”传递给funcion sortarray但却从未使用过?
顺便说一句,您不应将变量定义为“列表”。它是python中的保留字。 尽管它可能不会导致错误,但是会混淆某些查看您的代码或某些IDE链接错误的人。
这可能是您想要实现的。
def main(n):
array = []
for x in range(n):
array.append(random.randint(0, 5))
print(array)
sortarray(array)
def sortarray(array):
newarray = []
for i in range(len(array)):
newarray.append(array.pop.array(array.index(max(x))))
print(newarray)