class pig:
def __init__(self, dict, n):
self.dict = dict
self.n = n
def sort(self):
for j in range(self.n):
index = 0
for i in range(len(self.dict)):
# 只接受2-4岁的小猪,
if 2 <= self.dict[i][0] <= 4:
index += self.dict[i][1] * 2
# 将今年出生的小猪添加进去
self.dict.append([0, index])
for i in range(len(self.dict)):
# 一年过去了,小猪生完崽,给小猪加一岁
self.dict[i][0] += 1
if self.dict[0][0] > 4:
# 如果小猪大于4岁,将其数组中的值销毁
del self.dict[0]
# 显示当前猪圈猪的数量
for i in range(len(self.dict)):
print("岁数%d,数量%d" % (self.dict[i][0], self.dict[i][1]))
print("第%d年猪的数量:%s" % (j + 1, sum(map(lambda x: x[1], self.dict))))
print()
p = pig([[2, 2]], 10)
p.sort()
运行结果:
每次都是第一行达到最大年龄,不必循环找年龄>4的