我要找到名单上第一个丢失的号码。如果没有数字丢失,下一个数字应该是最后一个+1。在
它应该首先检查第一个数字是否大于1,如果是,那么新的数字应该是1。在
这是我试过的。问题就在这里:if next_value - items > 1:
结果是一个错误,因为在结尾和开头我都有一个None
。在
list = [1,2,5]
vlans3=list
for items in vlans3:
if items in vlans3:
index = vlans3.index(items)
previous_value = vlans3[index-1] if index -1 > -1 else None
next_value = vlans3[index+1] if index + 1 < len(vlans3) else None
first = vlans3[0]
last = vlans3[-1]
#print ("index: ", index)
print ("prev item:", previous_value)
print ("-cur item:", items)
print ("nxt item:", next_value)
#print ("_free: ", _free)
#print ("...")
if next_value - items > 1:
_free = previous_value + 1
print ("free: ",_free)
break
print ("**************")
print ("first item:", first)
print ("last item:", last)
print ("**************")
另一种方法:
^{pr2}$如果数字之间有间隔,则结果为正确的数字,但如果没有剩余空格错误发生:IndexError: list index out of range
。但是我需要指定,如果没有空闲空间,它应该给出一个新的数字(last+1)。但是下面的代码会给出一个错误,我不知道为什么。在
if free = []:
print ("no free")
else:
print ("free: ", free)
首先避免对变量使用保留字
list
。 第二次使用尝试:除了迅速而巧妙地避免此类问题。在要获取不是
vlans3
成员的最小整数:但是,如果列表中的最小值大于1,则返回1;如果没有缺少值,则返回最后一个值+1,因此这将变为:
^{pr2}$相关问题 更多 >
编程相关推荐