2015-10-14 56 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"](您目前擁有的),則應該獲得預期輸出。

相關問題