如果我可以同时在集合和列表操作,应该返回序列的修饰形式的功能,有没有办法保留序列类型,但仍使用理解?例如,如果我使用集合呼叫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
你为什么要这么做?我真的不能相信任何比较好的理由...... –