python - использование переменной, которая определяется другой функцией - PullRequest
0 голосов
/ 04 марта 2019

Я хочу вызвать вторую функцию и заставить ее использовать результат первой, но не знаю, как это сделать.Я не могу сделать «массив» локальной переменной, поскольку она зависит от первой функции.Может кто-нибудь, пожалуйста, помогите?Спасибо.

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)

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Почему вы передаете переменную list в funcion sortarray, но никогда не используете ее?

Кстати, вы не должны определять свою переменную как "list".Это зарезервированное слово в питоне.Хотя это может не вызывать ошибку, но это может сбить с толку тех, кто просматривает ваш код или неправильно ссылается на некоторые 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)
0 голосов
/ 04 марта 2019

Ваша первая функция должна что-то возвращать, если вы хотите передать этот результат второй функции.Пожалуйста, посмотрите следующий пример:

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)))

Кстати, если вы заинтересованы в сортировке - вам определенно стоит оформить заказ Сортировка КАК .

ОБНОВЛЕНИЕ

Это выдаст следующую ошибку:

<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 - это функция.

...