我试图找出一个值是否已存在于列表中,下面是我的代码和预期输出,有人可以纠正我出错的地方
isid_node=["100","105"]
isid_init_val=100
isid_new=[]
while(len(isid_new)<=5):
if isid_init_val in isid_node:
isid_init_val=isid_init_val+1
else:
isid_new.insert(20,isid_init_val)
isid_init_val=isid_init_val+1
print isid_new
我得到了
[100,101,102,103,104,105]
我在期待 [101,102,103,104,106,107]
请你能纠正我的代码吗?
答案 0 :(得分:1)
您正在比较字符串和数字。即使字符串是数字的字符串表示,它们也不相等。您需要将数字存储为需要测试的数字,数字的字符串表示形式在列表中。
例如:
isid_node=[100,105]
isid_init_val=100
isid_new=[]
while(len(isid_new)<=5):
if isid_init_val in isid_node:
isid_init_val=isid_init_val+1
else:
isid_new.insert(20,isid_init_val)
isid_init_val=isid_init_val+1
print isid_new
答案 1 :(得分:1)
你犯了一个小错误,字符串A
将不等同于"100"
(数字),这基本上就是你要检查的内容。
如果您将初始列表更改为100
而不是isid_node=[100,105]
(您目前拥有的),则应获得预期的输出。