gpt4 book ai didi

python - 重复添加到列表 Python

转载 作者:太空宇宙 更新时间:2023-11-03 21:43:58 24 4
gpt4 key购买 nike

我有类 MySet,我想返回 seta 和 setb 中的元素。但是,它会两次返回该元素。

class MySet:
def __init__(self, elements):
self.elements=elements
def intersection(self, other_set):
new_set = list(self.elements)
for j in other_set:
if j in self.elements:
new_set.append(j)
for h in self.elements:
if h not in other_set:
new_set.remove(h)
new_set.sort()
return new_set

所以如果 seta=MySet([1,2,3])setb=MySet([1,5,6]) , setc=seta.intersection(setb.elements) ,做print(setc)应该给[1]而是给出 [1,1] 。我怎样才能解决这个问题?另外,还有什么可以做的setc=seta.intersection(setb) ,没有 .elements ?谢谢。

最佳答案

此代码返回仅包含两个集合之间共享的值的列表。

class MySet:
def __init__(self, elements):
self.elements=elements
def intersection(self, other_set):
return sorted(set(self.elements) & set(other_set))
seta=MySet([1,2,3])
setb=MySet([1,5,6])

setc=seta.intersection(setb.elements)
print(setc)

您的代码为给定输入提供 [1,1] 的原因是您将匹配项附加到 new_list,而不是简单地删除不匹配项。

有一些方法可以通过使用 repr 和类似的类来摆脱输入 .elements 的麻烦。

关于python - 重复添加到列表 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52638033/

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