我有一个数字列表,想知道数字是否在列表中,但不是列表中的最后一个数字。也许是这样的吗?
for i in all_guesses:
if guess == i:
if guess != all_guesses[-1]:
#Code here
答案 0 :(得分:8)
使用in
测试表单成员资格并进行切片以排除最后一个数字:
print(guess in my_list[:-1])
编辑: 如果列表中有重复元素,OP不清楚期望的输出是什么,特别是如果最后一个元素在列表中的其他地方重复/存在则更是如此。在这种情况下,您需要检查它是否不等于最后一个元素。
print(guess in my_list[:-1] and guess != my_list[-1])
答案 1 :(得分:1)
If guess in all_guesses and all_guesses.index(guess)! = len(all_guesses):
print "Present but not last"
唯一的问题是,如果列表中有重复的元素,并且列表的末尾有一个元素,则它将不起作用。因为index
返回第一次出现的索引。
答案 2 :(得分:0)
l1 = [1,2,3]
l2 = [1,2,3,4]
n = 3
print( (n in l1 and n != l1[-1]) )
print( (n in l2 and n != l2[-1]) )
结果
False
True
答案 3 :(得分:0)
切片列表中的最后一个元素。
>>> my_list = [3, 1, 4, 6]
>>> without_last = my_list[:-1]
>>> without_last
[3, 1, 4]
>>>
>>> guess = 6
>>> guess in my_list
True
>>> guess in without_last
False
如果您必须经常执行此操作(并且您的列表包含多个元素),请考虑使用
为恒定时间成员资格测试构建一个集合。without_last = set(my_list[:-1])
答案 4 :(得分:0)
使用 Invalid setup on a non-virtual (overridable in VB) member: client => client.BuildUri(It.IsAny<IRestRequest>())
对列表进行切片,并使用[:-1]
检查数字
in