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)
似乎工作......
['A', [['B', [['D', [['G'], ['H']]], ['E', [['I']]]]], ['C', [['F', [['J'], ['K']]]]]]]
...但会产生不必要的括号和打印输出。
有关更好实施的建议吗?
接下来将在Class结构上工作。
答案 0 :(得分:0)
这里是如何只打印最终结果的。我还简化了一些其他的东西,使它更清晰。
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)
答案 1 :(得分:0)
一种更简单的方法,不会破坏您的代码:
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))
您也可以使用pprint
内置库来打印漂亮的对象