gpt4 book ai didi

python - 在 python 中维护集合或列表理解中的序列类型

转载 作者:行者123 更新时间:2023-11-28 22:04:03 24 4
gpt4 key购买 nike

如果我有一个函数可以对集合和列表进行操作并且应该返回序列的修改形式,有没有办法保留序列类型但仍然使用理解?例如,在下面,如果我用一个集合调用 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。

附言我正在使用 Python 3.2.2

最佳答案

没有很好的方法来保留序列的类型。正如您所猜测的那样,如果您真的想这样做,您将不得不将最后的答案转换为您想要的类型。您很可能不需要这样做,因此您应该认真考虑一下。

如果您决定转换,一个可能对您有帮助的捷径:内置序列的类型也是可以创建这些序列的构造函数:

def strip_common_path_prefix(seq):
# blah blah
return prefix, type(seq)(result)

关于python - 在 python 中维护集合或列表理解中的序列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7784549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com