python - 使用由另一个函数确定的变量

问题描述 投票:0回答:2

我想调用第二个函数并让它使用第一个函数的结果,但我不确定如何执行此操作。我不能使“数组”成为局部变量,因为它依赖于第一个函数。有人可以帮忙吗?谢谢。

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)
python function variables global
2个回答
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

UPDATE

这将产生以下错误:

<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是一个功能。


0
投票

为什么将变量“list”传递给函数排序数组但从不使用它?

顺便说一句,你不应该将你的变量定义为“列表”。它是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)
© www.soinside.com 2019 - 2024. All rights reserved.