(Python) & ldquo; не может назначить вызов функции & rdquo; и & ldquo; объект 'int' не поддерживает назначение позиции & rdquo; - Создание массива из цикла [дубликат]

6
задан Björn Pollex 11 August 2011 в 16:46
поделиться

5 ответов

Переместите y = [] в метод autoSolve, чтобы он сбрасывался при каждом вызове.

def autoSolve():
    y = []
    for i in range(5):
        z = random.randrange(1, 10)
        y.append(z)
    print(y, end="")
10
ответ дан Dogbert 26 August 2018 в 05:38
поделиться

Переместите y = [] в начало autoSolve.

0
ответ дан Amber 26 August 2018 в 05:38
поделиться
import random

y = []

def autoSolve():
    x = []
    for i in range(5):
        z = random.randrange(1, 10)
        x.append(z)
    print(x, end="")
    return x

for i in range(3):
    print("number", i + 1,)
    y.append(autoSolve())
    print()
0
ответ дан Fábio Diniz 26 August 2018 в 05:38
поделиться

Я думаю, что это было бы подходящим решением для этой проблемы.

import random

y = []

def autoSolve():
    x = []
    for i in range(5):
        z = random.randrange(1, 10)
        x.append(z)
    y.append(x)
    print(y, end="")

 for i in range(3):
    print("number", i + 1,)
    autoSolve()
    print()

здесь вывод будет генерировать, поскольку этот [[], [], []] формирует список с 3 внутренним списком из 5 элементов

-1
ответ дан Raihan 26 August 2018 в 05:38
поделиться

Вы печатаете один и тот же список y каждый раз.

y начинает пуст.

Первая итерация вашего цикла for y заканчивается 5 элементов.

Вторая итерация y.append заставляет ее увеличиваться до 10 элементов.

Чтобы предотвратить это, поместите строку

y=[]

внутрь метод autoSolve().

1
ответ дан Sanjay Manohar 26 August 2018 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: