Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中对两个列表进行二进制搜索?_Python_Python 3.x - Fatal编程技术网

如何在Python中对两个列表进行二进制搜索?

如何在Python中对两个列表进行二进制搜索?,python,python-3.x,Python,Python 3.x,所以我知道如何进行基本的二进制搜索,但我不知道如何进行二进制搜索,比较两个列表,在两个列表中都有一个字符串列表,并将一个与另一个进行核对,然后将所有匹配的字符串添加到一个新列表中 这是我到目前为止尝试过的,还有几个小时的其他方法。尝试以下功能: def binarysearch(l1,l2): return [x for x,y in zip(sorted(l1),l2) if x==y] print(binarysearch(['a','b','c'],['a','c','b']))

所以我知道如何进行基本的二进制搜索,但我不知道如何进行二进制搜索,比较两个列表,在两个列表中都有一个字符串列表,并将一个与另一个进行核对,然后将所有匹配的字符串添加到一个新列表中


这是我到目前为止尝试过的,还有几个小时的其他方法。

尝试以下功能:

def binarysearch(l1,l2):
   return [x for x,y in zip(sorted(l1),l2) if x==y]
print(binarysearch(['a','b','c'],['a','c','b']))
输出:

['a']

因此,如果两个输入列表是
['a','b','c']
['a','c','b']
,结果将是
['a']
?是的,这正是我的意思。我试图在问题的代码中这样说,但我对这个网站的格式还不熟悉。不过,用二进制搜索无法解决这个问题。因为你没有在寻找任何东西。您只需迭代两个列表并比较值。是否无法从列表中获取一个项目,然后使用二进制搜索将其与另一个列表进行检查,然后在找到该项目后将其附加到新列表中,然后移动到列表中的下一个项目,或者如果它不在列表中,那么就转到下一个?当然可以使用二进制搜索来查找另一个列表中的值的索引,然后检查两个列表中的索引是否相同,但为什么要这样做?这对我不起作用,我甚至不知道这里要做什么我认为这种方法假设匹配的项目在两个列表中都位于相同的位置/列表索引。@N.E chillin是对的,这就是我认为你想要的,那么你能解释一下你想要什么吗want@chillin没错,这很有道理。这也解释了为什么它对我不起作用。谢谢