Почему эта конкретная функция возвращает «нет»;я пытаюсь продемонстрировать растущий список? - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу видеть список в реальном времени, и когда он будет готов, я хочу запросить добавленный список с помощью индексов.

l=[]
def GrowingList(list):
    try:
        import random
        while True:
            rlist=lambda: print([random.randint(0,12)])
            list.append(rlist())
            print(list)
        return GrowingList(list)

    except KeyboardInterrupt:
        pass

Вот расшифровка:

Grown list
[None]
Grown list
[None, None]
Grown list
[None, None, None]
Grown list
[None, None, None, None]

КогдаЯ запрашиваю новый скомпилированный список, который показывает 'none' для каждого индекса:

>>> l
[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]

Я новичок в программировании, поэтому просто расслабьтесь.Этот список является лишь практической функцией того, как списки могут быть автоматически расширены.«Выросший список» - это просто пример того, что я хочу поместить в список.

1 Ответ

0 голосов
/ 28 ноября 2018

Вы используете print в lambda, который вернет None.Также ваш возврат имеет рекурсию, которая не нужна.

edit: вы можете удалить полную лямбда-часть и напрямую добавить случайное значение в список.

Вы можете использовать ниже модифицированный код:

import random
l=[]
count=1
def GrowingList(list):
    try:
        count=1

        while True:
            rlist=random.randint(0,12)
            list.append(rlist)
            print(list)
            #below three line is added to break the code after 10 iteration you can remove them if you want to break on keyboard interrupt.  
            count+=1
            if count > 10:
                break
        return list

    except KeyboardInterrupt:
        pass

выход:

[1, 10]
[1, 10, 8]
[1, 10, 8, 11]
[1, 10, 8, 11, 2]
[1, 10, 8, 11, 2, 10]
[1, 10, 8, 11, 2, 10, 12]
[1, 10, 8, 11, 2, 10, 12, 5]
[1, 10, 8, 11, 2, 10, 12, 5, 0]
[1, 10, 8, 11, 2, 10, 12, 5, 0, 8]
[1, 10, 8, 11, 2, 10, 12, 5, 0, 8, 8]
...