擅长:python、mysql、java
<p>不使用itertools,您可以执行以下操作:</p>
<pre><code>class House():
def __init__(self, qt, cons, consper):
self.qt = qt
self.cons = cons
self.consper = consper
def __str__(self):
return "House(" + str(self.qt) + "," + str(self.cons) + "," + str(self.consper) + ")"
def __repr__(self):
return self.__str__()
def merge_dups(house_list):
res = []
house_map = {}
for h in house_list:
if h.consper in house_map:
other_house = house_map[h.consper]
merged_house = House(h.qt + other_house.qt,
h.cons + other_house.cons,
h.consper)
res.remove(other_house)
res.append(merged_house)
else:
house_map[h.consper] = h
res.append(h)
return res
print(merge_dups([
House(2, 20, 10),
House(3, 31, 10),
House(6, 70, 11),
House(2, 40, 20),
House(1, 25, 25)]))
</code></pre>
<p>输出</p>
<pre><code>[House(5,51,10), House(6,70,11), House(2,40,20), House(1,25,25)]
</code></pre>