【发布时间】:2015-05-11 18:41:14
【问题描述】:
我想在 python 中编写一个在列表中查找值的程序。 像这样的:
arr = [1, 14, 2, 4, 5, 11, 8, 10]
for i in range(1, len(arr)):
if(i * 2 in arr):
print "!"
我要检查的数组要长得多,所以需要很长时间。
我想出了一个想法来制作一个哈希表而不是一个列表。
像这样:
arr = {1: "something", 14: "something", 2: "something", 4: "something",
5: "something", 11: "something", 8: "something", 10: "something"}
我的想法是检查i 是否等于2 以便检查arr[i*2] 是否会返回某些内容,因为这样程序就不需要查找某些内容来调用它(如果存在)。
问题是如果i 等于3 那么它会检查arr[3*2] 是否会返回一些东西,它不会因为没有键6 并且它会返回一个错误。
我的想法如何做到这一点?
【问题讨论】:
-
可以使用get方法:arr.get(3*2, None)
-
@DmytroKuznetsov 默认值是
Noneonly :-) -
所以基本上你真正想要做的是看看 i*2 是否小于列表的长度?我只是问,因为你的问题很奇怪。你不需要字典。
标签: python list python-2.7 dictionary