如何序列化輸出元素包含字串元組的字串元組(好繞)
舉個例子
>>> zoo1 = ('monkey', 'elephant')
>>> zoo2 = ('python', zoo1)
將zoo2輸出為python, monkey, elephant
容易想到使用join()
函式,但join()
函式要求元素必須都是字串型別,否則會丟擲typeerror
錯誤
>>> zoo1 = ('monkey', 'elephant')
>>> zoo2 = ('python', zoo1)
>>> print(', '.join(zoo2))
traceback (most recent call last):
file "", line 1, in
typeerror: sequence item 1: expected str instance, tuple found
乙個比較簡單的方法是將zoo1給unpack進zoo2中,然後再將zoo2給unpack進print
函式,最後指定print
函式的sep
引數來輸出
>>> zoo1 = ('monkey', 'elephant')
>>> zoo2 = ('python', *zoo1)
>>> print(*zoo2, sep=', ')
python, monkey, elephant
如果想要將結果儲存起來,那麼使用join
就可以了
>>> zoo1 = ('monkey', 'elephant')
>>> zoo2 = ('python', *zoo1)
>>> s = ', '.join(zoo2)
>>> print(s)
python, monkey, elephant
上面的方法僅僅是針對於特定的情況,那麼對於乙個多重巢狀的元組該如何處理呢
容易想到使用遞迴來實現,判斷當前元素的型別來決定是否結束遞迴即可
下面是乙個簡單的實現方法
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)
print(my_join(zoo, ', '))
stack overflow Python每日一練0002
如何序列化輸出元素包含字串元組的字串元組 好繞 舉個例子 zoo1 monkey elephant zoo2 python zoo1 將zoo2輸出為python,monkey,elephant容易想到使用join 函式,但join 函式要求元素必須都是字串型別,否則會丟擲typeerror錯誤 z...
python每日一練
人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...
Python每日一練
人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...