比较python中两个列表的元素

2024-09-30 22:23:40 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我需要比较python中两个列表的元素,如果它们有15个以上的共同元素,则应该显示一条消息。我尝试使用for循环遍历这些列表,并比较该列表中的每个元素,如果它们相等,我制作一个计数器来计算我的正确答案,如果它们大于15,则显示消息“youpassed”.但它根本不起作用,它总是说我无论如何都通过了 代码如下:

for j in answerList:
    for k in answers:
        if(k==j):
            nr+=1
if(nr>15):
    print("You passed")
else:
    print("You failed")

Tags: 答案代码inyou消息元素列表for
2条回答

通过考虑len(answers) == len(answerList),您可以zip()两个列表并在一行中执行比较

n = len([*filter(lambda x: x[0] == x[1], zip(answerList, answers))])

if n > 15:
     print("You passed")
else:
     print("You failed")

仅供参考:在您的情况下,时间复杂度为O(len^2),在本例中,时间复杂度为O(n)

因为对于answerList,会重新迭代answer,所以应该使用zip()

for j,k in zip(answerList,answers):
    if(k==j):
        nr+=1
if(nr>15):
    print("You passed")
else:
    print("You failed")

nr=sum(k==j for j,k in zip(answerList,answers))

相关问题 更多 >