我正在使用Python处理大量的质数,并试图通过在其他地方引用来查找质数在列表中的位置编号(在这种情况下,y的位置为2-> [x,x,y,x]
) :
primelist = [104395303, 104395337] #it's a lot longer than that but you get the idea
print([primelist].index(104395303))
我希望它返回0-即104395303
在名为 primelist 的列表中的位置,但收到错误消息:
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
print([primelist].index(104395303))
ValueError: 104395303 is not in list
为我的故障排除尝试提供证据的屏幕截图。
为什么我会收到此错误?除了已经尝试过的方法之外,我还应该怎么做才能达到期望的目标?
答案 0 :(得分:1)
primelist.index(104395303)
已经是列表。不要将其包装在另一个列表中。
答案 1 :(得分:0)
您可以在运行.index之前检查它是否存在
primelist = [104395303, 104395337]
index_check = 104395303 in primelist
if(index_check):
print(primelist.index(104395303))
else:
print("Number not found")
答案 2 :(得分:0)
使用python if else
块获取索引(如果存在),否则获取-1
(如果不存在)
primelist = [104395303, 104395337]
num=104395303
index_= primelist.index(num) if num in primelist else -1 #index_ would be 0
如果该元素不存在于列表中,例如num=104395303
,如果我们这样做primelist.index(num)
,它将抛出ValueError
作为我们要尝试的元素find尚不存在,但是如果找不到元素,则可以使用if else
块将索引分配为-1
。
primelist = [104395303, 104395337]
num=104395304 # num not present in list
index_= primelist.index(num) if num in primelist else -1 #index_ would be -1
或将您的代码包装在try except block
primelist = [104395303, 104395337]
num=104395304
try:
index_= primelist.index(num)
except ValueError:
index_=-1
print(index_)
答案 3 :(得分:0)
primelist.index(104395303)
...应该做的。
index函数只是找到传递的元素的索引。您所做的就是将列表放在另一个列表中。现在,如果要检查索引,则必须使用:
[primelist][0].index(104395337)
另一种更简单的方法是:
104395303 in primelist
True
这很容易与if条件结合使用,并且非常方便。