我是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
&给他/她一个错误信息?
答案 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"