Python 我的函数不起作用(起作用但给出错误答案)

Python 我的函数不起作用(起作用但给出错误答案),python,Python,我试图得到这样的结果: [5,4,8] 但我得到了这个:[] listA = [4,1,8,4,5] listB = [5,6,1,8,4,5] class Solution(object): def getIntersectionNode(listA,listB): de=[] for i in range(-1,-len(listB)): for j in range(-1,-len(listB)):

我试图得到这样的结果: [5,4,8]

但我得到了这个:[]

listA = [4,1,8,4,5]
listB = [5,6,1,8,4,5]

class Solution(object):
    
    def getIntersectionNode(listA,listB):
        de=[]
        for i in range(-1,-len(listB)): 
            for j in range(-1,-len(listB)):
                
                if listA[i] == listB[i]:de.append(listA[-1])
                
                elif listA[-1] != listB[-1]: print("null")  
                                          
                
        return de   

此代码有什么问题?

如果您不需要担心重复:

listA = [4,1,8,4,5]
listB = [5,6,1,8,4,5]

class Solution(object):
    
    def getIntersectionNode(listA,listB):
        de=list(set(listA) & set(listB))
             
        return de   
print(Solution.getIntersectionNode(listA,listB))

交叉点不是[8,1,4,5]

如果您想要的是交叉点,可以使用集合轻松实现:

list(set(listA).intersection(set(listB)))

为什么在范围内使用负数?这些可能是空范围。没有使用变量j,这可能是一个输入错误。您不应该得到任何结果,因为您从未创建过该类的实例。我需要从末尾开始。这是否回答了您的问题?它必须从列表的末尾开始,当它不同时必须停止。在这种情况下,它只有5,4,8