如果我可以同時在集合和列表操作,應該返回序列的修飾形式的功能,有沒有辦法保留序列類型,但仍使用理解?例如,如果我使用集合呼叫stripcommonpathprefix
,它會起作用,但會產生將集合轉換爲列表的不良副作用。是否有可能維持型(同時仍使用理解),而不必直接檢查isinstance
,然後返回基於正確的類型?如果不是,最乾淨的方法是什麼?維護序列類型
def commonpathprefix(seq):
return os.path.commonprefix(seq).rpartition(os.path.sep)[0] + os.path.sep
def stripcommonpathprefix(seq):
prefix = commonpathprefix(seq)
prefixlen = len(prefix)
return prefix, [ p[prefixlen:] for p in seq ]
如果這是一個基本問題,謝謝你對不起。我剛剛開始學習python。
P.S.我使用Python 3.2.2
你爲什麼要這麼做?我真的不能相信任何比較好的理由...... –