gpt4 book ai didi

python - 将 cmp 函数或键函数传递给 python 2.7 中的 Set difference(或其他 set 操作)

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:23 28 4
gpt4 key购买 nike

我需要在 python 元组中做一组差异,但差异需要考虑我的元组的第一个元素。

为了实现这一目标,我(不断地)使用了此类方法

class Filedata(object):
def __init__(self, filename, path):
self.filename = filename
self.path = path + '\\' + filename
def __eq__(self, other):
return self.filename==other.filename
def __ne__(self, other):
return self.filename!=other.filename
def __call__(self):
return self.filename
def __repr__(self):
return self.filename

深入研究 sets.py 模块,我发现该库使用 itertools.ifilterfalse 函数来产生差异

def difference(self, other):
"""Return the difference of two sets as a new Set.

(I.e. all elements that are in this set and not in the other.)
"""
result = self.__class__()
data = result._data
try:
otherdata = other._data
except AttributeError:
otherdata = Set(other)._data
value = True
for elt in ifilterfalse(otherdata.__contains__, self):
data[elt] = value
return result

但我无法用它做任何有用的事情。

最佳答案

唯一的方法是定义你自己的序列类,它只使用 __eq__()__hash__() 中的第一个元素。

关于python - 将 cmp 函数或键函数传递给 python 2.7 中的 Set difference(或其他 set 操作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10098761/

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