如何检查列表是否在列表列表中

时间:2019-11-30 20:32:40

标签: python

因此列表“ a”中的列表代表2位朋友。因为友谊通常同时起作用,所以我为此创建了list1和list2。当我测试我的函数时,它为这四个中的每一个都提供True作为返回值,但是只有第一个应该为True,我不明白为什么。 预先感谢。

def is_friend_with(name_person1, name_person2):
    list1 = [name_person1, name_person2]
    list2 = [name_person2, name_person1]
    if list1 or list2 in a:
        return True
    else:
        return False

print(is_friend_with("Lucas", "Emma") )  # true
print(is_friend_with("Lucas", "Kevin") )  # false
print(is_friend_with("Suzy", "Emma") )  # false
print(is_friend_with("Suzy", "Frank") )  # false

a = [['Marie', 'Lucas'], ['Lucas', 'Patsy'], ['Emma', 'Lucas'], ['Emma', 'Kevin'], ['Peter', 'Emma'], ['Peter', 'Lucas'], ['Peter', 'Julie'], ['Suzy', 'Tobias']]

1 个答案:

答案 0 :(得分:1)

检查您的if语句。当前正在检查list1是否存在(它将始终存在)或list2是否在a中。 if语句应为if list1 in a or list2 in a:

这是完整的解决方案。

a = [['Marie', 'Lucas'], ['Lucas', 'Patsy'], ['Emma', 'Lucas'], ['Emma', 'Kevin'], ['Peter', 'Emma'], ['Peter', 'Lucas'], ['Peter', 'Julie'], ['Suzy', 'Tobias']]
def is_friend_with(name_person1, name_person2):
    list1 = [name_person1, name_person2]
    list2 = [name_person2, name_person1]
    if list1 in a or list2 in a:
        return True
    else:
        return False

print(is_friend_with("Lucas", "Emma") )  # true
print(is_friend_with("Lucas", "Kevin") )  # false
print(is_friend_with("Suzy", "Emma") )  # false
print(is_friend_with("Suzy", "Frank") )  # false