如何解决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_one
和 list_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 举报,一经查实,本站将立刻删除。