Вы близки - вы можете сделать только пару изменений в существующий код, чтобы получить то, что вы можете:
def genlist():
x = []
limit = randint(50, 200)
while len(x) < limit:
y = randint(1,9999)
x.append(y) # Use the .append() function is more common
return x
Это даст вам список случайных чисел, которые имеют случайную длину между 50 и 200.
Как отметил Ноктис, в Python есть некоторые функции, которые могут уменьшить количество кода, который вы должны написать. И когда вы становитесь более знакомыми, их также легче читать.
Первое, что мы можем сделать, это изменение этого цикла while
в петлю for
. Всякий раз, когда вы заранее знаете, сколько всего вы хотите, петли for
- это путь.
def genlist():
x = []
for _ in range(randint(50, 200)): # use xrange if you're on Python2
y = randint(1,9999)
x.append(y) # Use the .append() function is more common
return x
Следующее изменение, которое мы можем сделать, это то, что называется list comprehension. Это в основном просто берет весь этот код, который составляет ваш цикл и застревает его внутри []
. Here is a great visual guide to list comps
def genlist():
x = [randint(1, 9999) for _ in range(randint(50, 200))]
return x
И вы можете обрезать, что вниз, просто возвращая список понимание вместо того, чтобы назначить его Название переменной:
def genlist():
return [randint(1, 9999) for _ in range(randint(50, 200))]
И если вы этого хотите, вы можете параметризуем вашу функцию, поэтому абонент может настраивать выходы - и сделать еще лучше, вы можете дать им параметры по умолчанию, чтобы они по умолчанию несли текущее поведение, если они не хотят его переопределить:
def genlist(randmin=1, randmax=9999, minsize=50, maxsize=200):
return [randint(randmin, randmax) for _ in range(randint(minsize, maxsize)]
@Jo ranBeasley Я думаю, что вы злоупотребляете своими полномочиями, закрыв это, вызвав ваше намеренное неверное истолкование вопроса и удаление вашего ответа. Этот вопрос связан с получением нескольких результатов; учитывая некоторый рабочий код, как вы это делаете несколько раз? –
Я даже не понимаю коды в этом другом потоке, я просто хочу, чтобы мой собственный код работал:^( – epYa
ОК, возможно, вы правы @PeterWood. Я снова открою извините ... Я, возможно, не совсем читал вопрос. .. –