if循环查找List中的值

时间:2015-10-14 05:18:38

标签: list python-2.7 if-statement

我试图找出一个值是否已存在于列表中,下面是我的代码和预期输出,有人可以纠正我出错的地方

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]

请你能纠正我的代码吗?

2 个答案:

答案 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](您目前拥有的),则应获得预期的输出。