python练习题

1. 如何序列化输出元素中包含字符串和元组的字符串元组。

示例:

zoo1 = ('monkey', 'elephant')
zoo2 = ('python', zoo1)

将zoo2输出为python, monkey, elephant

一个比较简单的方法是将zoo1给unpack进zoo2中,然后再将zoo2给unpack进print函数,最后指定print函数的sep参数来输出

zoo1 = ('monkey', 'elephant')
zoo2 = ('python', *zoo1)

print(*zoo2, sep=',')

如果想要将结果存储起来,那么使用join就可以了

zoo1 = ('monkey', 'elephant')
zoo2 = ('python', *zoo1)

s = ','.join(zoo2)
print(s)

上面的方法仅仅是针对于特定的情况,那么对于一个多重嵌套的元组该如何处理呢,容易想到使用递归来实现,判断当前元素的类型来决定是否结束递归即可

zoo = (
    'monkey',
    'elephant',
    ('penguin', 'camel'),
    ('zebra', 'giraffe'),
    'python',
)


def my_join(tpl, sep):
    return sep.join(x if isinstance(x, str) else my_join(x, sep) for x in tpl)


ret =my_join(zoo, ', ')

print(ret)

  

posted @ 2018-03-20 20:15  流星之泪  阅读(86)  评论(0)    收藏  举报