我有一个字典teacher
,其中包含嵌套的字典列表。我正在尝试使用递归函数为joebloggs的所有同事和同事提取名称的set
。你知道吗
teacher = {'age': 27,
'name': 'Joe Bloggs',
'colleagues': [{'age': 34,
'name': 'Tim Smith',
'colleagues': [{'age': 39,
'name': 'Linda Smith',
'colleagues': [{'age': 41,
'name': 'Belinda Barker',
'colleagues': []}]},
{'age': 33,
'name': 'Kelly Brooker',
'colleagues': []},
{'age': 44,
'name': 'Duncan Turnbull',
'colleagues': []}]},
{'age': 29,
'name': 'Jenna French',
'colleagues': []}]}
所需输出:
{'Tim Smith', 'Linda Smith', 'Belinda Barker',
'Kelly Brooker', 'Duncan Turnbull', 'Jenna French'}
注意输出不需要任何特定的顺序,因为它是set
。与递归函数的常见情况一样,在没有找到解决方案的情况下很难“取得进展”。到目前为止,我有一个递归函数,它接受两个参数,但不知道如何设置我的函数来生成所需的结果:
def names(teacher, colleagues=None):
您可以在集合理解中执行此操作;循环包括
colleagues
列表中的所有名称及其递归同事名称:也可以将其表示为一组直接名称和递归调用的并集:
演示:
相关问题 更多 >
编程相关推荐