微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 3 比较在搜索函数中返回 false 的列表的两个单独成员

如何解决Python 3 比较在搜索函数中返回 false 的列表的两个单独成员

我一直在努力调试这个功能。该函数的目标是在两个列表之间搜索并打印任何常见的列表项。我已经用打印语句跟踪并跟踪了这个嵌套的 for 循环,但无法确定问题。即使在比较两个相同的列表项时,循环似乎总是在打印语句上返回 false,所以我认为嵌套 for 循环的逻辑不是问题。

我对 Python 比较陌生,所以我确定答案很愚蠢。

list_one = [banana,orange,apple]
list_two = [monkey,dog,cat,apple]


def search_lists(list_one,list_two):
    match = False
    
    for items in list_one:
        for data in list_two:
            if (data == items):
                print(data)
                match = True
                print("match found")
                
    return match

search_lists(list_one,list_two)

解决方法

将 '' 放在列表项周围。 list_one = ['banana','orange','apple'] and list_two = ['monkey','dog','cat','apple']

编辑:如果您想打印从列表中匹配的项目列表,那么您也可以使用列表理解:

    def search_lists(list_one,list_two):
    x = [item for item in list_one for data in list_two if data == item]
    return x


list_one = ['banana','apple']
list_two = ['monkey','apple']

print(search_lists(list_one,list_two))
,

list_onelist_two 的初始化不正确。

  • 如果您希望这些数据是字符串,请使用
list_one = ["banana","orange","apple"]
  • 如果您希望这些数据成为变量,请在使用前对其进行初始化。例如
banana = 0
orange = 1
apple = 2
list_one = [banana,orange,apple]
,
def intersection_1(lst1,lst2):
    lst3 = [value for value in lst1 if value in lst2]
    return lst3


def intersection_2(lst1,lst2):
    return list(set(lst1) & set(lst2))


def intersection_3(lst1,lst2):
    return list(set(lst1).intersection(lst2))


lst1 = ['banana','apple']
lst2 = ['monkey','apple']

print(intersection_1(lst1,lst2)) # ['apple']
print(intersection_2(lst1,lst2)) # ['apple']
print(intersection_3(lst1,lst2)) # ['apple']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。