我环顾四周,没有发现一个问题,询问的是列表中的最后一项而不是整个列表。 如果列表中的最后一项在另一个列表中,我将尝试做某事。
pile = [2,6,9]
another = [1,5,6,5,4,1,6,7]
if another[-1:-4:-1] in pile: #if one of the last 3 items in 'another' are in the list 'pile' then print yes
print("yes")
else:
print("no")
我尝试使用切片,但我认为这样做不是正确的方法,我是新手。 我正在尝试使程序获取列表“另一个”中的最后3个项目,并且如果最后3个元素之一位于另一个列表“ pile”中,则显示为yes。 在这种情况下,6位于'another [-1:-4:-1]'和'pile'中,但我不知道如何在代码中编写使其起作用
我用这个基本示例进行了解释,但是在我编写的程序中,新项目被追加到“另一个”列表上,因此最后一个项目的索引将发生变化。我只需要检查最后一个项目,而不需要检查其余项目。
答案 0 :(得分:1)
您可以使用sets
,它可以测试交叉点:
if set(pile).intersection(set(another[-3:])):
print("yes")
else:
print("no")
答案 1 :(得分:0)
好吧,我建议您切出列表的最后三个元素,并逐一检查它们。这是解决此问题的最简单方法之一,也是继续学习的好方法(尽管您仍在学习如何使用Python玩游戏)。
这就是我可能要做的。
checker = True ## variable to keep track of whether or not was 'yes' printed and prevent re-printing of 'yes' in cases when multiple elements satisfy the condition
for num in another[-4:]:
if num in pile and checker:
print ('yes')
checker = False
if checker:
print ('no')