2015-10-14 49 views
0

我试图找到某个值在列表中已经存在与否,下面是我的代码,和预期产出,可有人纠正我在哪里出了错如果循环在列表中找到一个值

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]

请你纠正我的代码?

回答

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

你犯了个小错误,字符串"100"不会等同于100(数量),这基本上是你所检查。

如果您将初始列表更改为isid_node=[100,105]而不是isid_node=["100","105"](您目前拥有的),则应该获得预期输出。

相关问题