Python是否有适用于可迭代对象的内置去重函数exclusive()?
问题
set()不是可行方案,它仅能处理包含可哈希元素的可迭代对象。目前我正在使用如下自定义函数:
def exclusive(arr): return arr.__class__({str(i):i for i in arr}.values())
请问是否存在对应的内置实现?
注:请不要推荐自定义实现的函数,我仅想了解是否有官方内置的对应函数。
回答
Python官方标准库中没有适配该需求的内置实现。
set()仅支持可哈希元素去重是其固有设计,官方未单独提供可处理包含不可哈希元素的可迭代对象的通用去重内置函数。- 你当前使用的实现逻辑依赖将元素转为字符串作为唯一标识,这类方案本身存在明确的适用边界(例如不同元素的字符串表达可能重合、部分对象无法通过字符串实现唯一区分等),官方没有将这类存在局限性的通用去重逻辑封装为内置函数。
内容的提问来源于stack exchange,提问作者LazyBum Q
相关产品推荐
相关产品推荐

