【发布时间】:2015-05-11 07:06:32
【问题描述】:
我正在尝试查找最近 5 年的不重复数字,但我不断收到错误 'int' object has no attribute '__getitem__'
这是我的代码,到目前为止 - 我无法弄清楚它有什么问题。任何关于如何解决它的解释表示赞赏。
def find_year():
start = 2015
years = []
while len(years) < 5:
if start[0] == start[1]:
return False
elif start[0] == start[2]:
return False
elif start[0] == start[3]:
return False
elif start[1] == start[2]:
return False
elif start[1] == start[3]:
return False
elif start[2] == start[3]:
return False
else:
years.append(start)
start -= 1
else:
print years
find_year()
【问题讨论】:
-
当你有 N 个项目的集合并且想要测试它们都是不同的,那么不要进行 N(N-1)/2 不必要的相等测试,只需将它们分配给一个 set/dict /tuple/list 并测试它的长度是 == N。dict/set 是你的朋友,它有 O(1) 的查找时间,而不是 O(n) 的 list/tuple 或 O(log2 N) 的二叉树.