如何为该函数编写递归?

时间:2021-07-30 18:59:48

标签: python python-3.x list recursion

如何为这个函数编写递归?

def randomWord(args):
    yield random.choice(args)

list = ['book', 'apple', 'word']
books = randomWord(list)
print(next(books))
print(next(books))
print(next(books))
print(next(books))
print(next(books))

在每个 print(next(books)) 之后,我需要从 list 中获取一个随机单词

2 个答案:

答案 0 :(得分:1)

从 Python 3.3 开始,您可以只使用 yield from 关键字。

def randomWord(args):
    yield random.choice(args)
    yield from randomWord(args)

list = ['book', 'apple', 'word']
books = randomWord(list)
print(next(books))
print(next(books))
print(next(books))
print(next(books))
print(next(books))

答案 1 :(得分:0)

def randomWord(args):
    yield random.choice(args)

list = ['book', 'apple', 'word']
books = randomWord(list)

def recurse(n):
    if n == 0: return # base case

    print(next(books))
    recurse(n-1)

recurse(99) # the recurse function will call itself 99 times (for a total of 100 calls)

不知道为什么你想要这个而不是循环......

相关问题