Python:如何检查元素是否不在列表中?

时间:2017-05-22 08:32:43

标签: python python-3.x

我是python& amp;的新手在Windows中的PyCharm中使用python 3.4.3。假设我在python中有一个列表,其中第(0,2,4)个元素是名称(字符串)和(1,3,5)元素是他们的' roll(int)

list = ['a',12,'b',16,'c',20]

如果我想提示用户输入卷号,则删除卷和前一个字符串:

delRoll = list.index(int(input("Delete roll no: ")))
del (list[delRoll - 1: delRoll + 1])

如果用户输入list中列出的号码,我测试它工作正常(例如删除名称和滚动),但如何查找用户是否未输入未登记的卷号在list&给他/她一个错误信息?

2 个答案:

答案 0 :(得分:3)

您可以使用简单的if-else对:

l = ['a',12,'b',16,'c',20]
roll = int(input())
if roll in l:
    del (l[l.index(roll) - 1: l.index(roll) + 1])
    print("Succes! Your list is ",l)
else:
    print("Number not in list.")

如果输入的数字是12,则结果为Succes! Your list is ['b', 16, 'c', 20]

正如 @Rawing 在评论中指出的,这种方法具有太多的线性时间复杂度,因此我推荐这种方法:

l = ['a',12,'b',16,'c',20]
roll = int(input())
i = 0
try:
    i = l.index(roll)
except ValueError:
    print("The given number is not in the list.")
else:
    del(l[i-1:i+1])
    print("Succes, your list is: ",l)

快速说明:您不应将list用作变量名,因为它是列表(数组)的关键字。

答案 1 :(得分:2)

list = ['a',4,'b',2]

try:
    b=a.index('a')
except ValueError:
    "Throw Error"
else:
    "Do something with the value"