打印大多数内部元素的元组元素

2024-10-02 06:38:27 发布

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

我遇到了一个python问题,我对这个问题很陌生,想知道我缺少了什么。你知道吗

我想做的是打印一个嵌套的元组,但是从内到外。你知道吗

例如:('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))

我不是在问这个问题的答案(那太好了),但如果你能告诉我代码有什么问题,我将不胜感激。你知道吗

有人吗?有什么想法吗?你知道吗

谢谢!你知道吗


Tags: 答案代码lenreturnifdefnullelse
3条回答

这也许对你有用

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)
  1. 第3行的return语句不应该在return的内容前面有(。你知道吗
  2. 递归的基本情况(else语句,即len(t) <= 1)应该返回字符串"null"或单个元素列表["null"]。你知道吗
  3. 函数的递归组件(return tuplePrint(t[1]))也必须包含当前元素,因此您可能需要tuplePrint(t[1]) + [t[0]]tuplePrint(t[1]) + " " + t[0]。你知道吗
  4. 一旦您的函数返回一个类似"null A B E"的字符串或一个类似[null, A, B, E]的列表,您就需要通过加入列表来打印它:", ".join(tuplePrint(x))(在字符串情况下,您应该对tuplePrint(x)返回的字符串调用split())。你知道吗

导致:

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
def tuple_print(t):
    x, xs = t
    v = 'null'
    if len(xs):
        v = tuple_print(xs)
    return ', '.join((v, x))

相关问题 更多 >

    热门问题