Python如何查找列表中是否有数字,而不是列表的最后一个数字?

时间:2018-12-08 17:36:14

标签: python

我有一个数字列表,想知道数字是否在列表中,但不是列表中的最后一个数字。也许是这样的吗?

for i in all_guesses:
        if guess == i:
            if guess != all_guesses[-1]:
            #Code here

5 个答案:

答案 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