Python每日一練0002

2021-08-17 09:17:24 字數 1534 閱讀 9217

如何序列化輸出元素包含字串元組的字串元組(好繞)

舉個例子

>>> 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...