我遇到了蟒蛇问题,我对此很新,想知道我错过了什么。
我想要做的是打印一个嵌套的元组,但是从内到外。
例如:('C', ('B', ('A', ())))
应打印为null, A, B, C
所有元组的最大大小为2。
我正在考虑使用递归函数来做到这一点;我有这个代码,但我不知道什么是错的。
def tuplePrint(t):
if len(t) > 1:
return(tuplePrint(t[1])
else:
return t[0]
x = ('E', ('B', ('A', ())))
print(tuplePrint(x))
我没有要求问题的答案(那会很棒),但如果只有你能告诉我代码有什么问题我会感激不尽。
任何?任何想法?
谢谢!
答案 0 :(得分:1)
def tuple_print(t):
x, xs = t
v = 'null'
if len(xs):
v = tuple_print(xs)
return ', '.join((v, x))
答案 1 :(得分:1)
return
语句在(
的内容之前不应有return
。len(t) <= 1
)应返回字符串"null"
或单元素列表["null"]
。return tuplePrint(t[1])
)也必须包含当前元素,因此您可能需要tuplePrint(t[1]) + [t[0]]
或tuplePrint(t[1]) + " " + t[0]
。"null A B E"
这样的字符串或像[null, A, B, E]
这样的列表,你想要通过加入列表以逗号分隔打印它:", ".join(tuplePrint(x))
(在字符串的情况下,你应该在split()
返回的字符串上调用tuplePrint(x)
。导致:
def tuplePrint(t):
if len(t) > 1:
return tuplePrint(t[1]) + [t[0]]
else:
return ["null"]
x = ('E', ('B', ('A', ())))
print(", ".join(tuplePrint(x)))
# null, A, B, E
答案 2 :(得分:0)
这可能适合你
def tuplePrint(t):
if not t:
answer.insert(0, "null")
for each in t:
if isinstance(each, tuple):
tuplePrint(each)
else:
answer.insert(0, each)
x = ('E', ('B', ('A', ())))
answer = []
tuplePrint(x)
print(answer)