如何为族创建列表

2024-06-07 09:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

python新手。学习创建一个函数来生成列表。。。例如,可以表示家谱的东西。我想到的是:

def familytree(root):
        many = int(input('How many children does "' + root[0] + '" have? '))
        if many > 0:
            root.append([[] for y in range(many)])
            z = root[1]
            for j in range(many):
                name = [input("Give name of one of " + root[0] + "'s children?")]
                z[j] = name
                familytree(name)
        print(root)

似乎有用。。。在

^{pr2}$

。。。但结果是不必要的括号和打印输出。在

有什么更好的实施建议吗?在

下一步将研究类结构。在


Tags: of函数namein列表forinputdef
2条回答

以下是如何只打印最终结果的方法。我还简化了一些其他的东西,使它更清晰。在

def familytree(root):
    many = int(input('How many children does "' + root[0] + '" have? '))
    if many > 0:
        z = []
        root.append(z)
        for j in range(many):
            name = [input("Give name of one of " + root[0] + "'s children?")]
            z.append(name)
            familytree(name)


root = ['A']
familytree(root)
print(root)

一种不破坏代码的简单方法:

root = ['A']
def familytree(root):
    many = int(input('How many children does "' + root[0] + '" have? '))
    if many > 0:
        root.extend([] for y in range(many))
        for j in root[1:]: 
            name = input("Give name of one of " + root[0] + "'s children? ")
            j.append(name)
            familytree(j)

print(familytree(root)) 

您还可以使用^{}内置库来美化打印对象

相关问题 更多 >

    热门问题