Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 - Fatal编程技术网

python中基于索引的字符串匹配

python中基于索引的字符串匹配,python,Python,我有两张单子 list1 = ['this', 'is', 'the', 'right', 'string'] list2 = ['this', 'is', 'right'] 经过比较,我需要找出另一个列表,仅包括 list3 = ['this', 'is'] 我已经尝试过使用交叉路口,我知道这不是我的情况下正确的解决方案 >>> list(set(list1) & set(list2)) ['this', 'is', 'right'] 这不是基于指数的比较 我需

我有两张单子

list1 = ['this', 'is', 'the', 'right', 'string']
list2 = ['this', 'is', 'right']
经过比较,我需要找出另一个列表,仅包括

list3 = ['this', 'is']
我已经尝试过使用交叉路口,我知道这不是我的情况下正确的解决方案

>>> list(set(list1) & set(list2))
['this', 'is', 'right']
这不是基于指数的比较

我需要找到基于索引的比较。我的意思是,首先比较列表1和列表2中的第一个单词,如果匹配,然后在每个列表中取下一个单词,然后比较这些单词,依此类推。如果不匹配,则只返回匹配的单词。
任何人都可以帮我???

如果你喜欢noob风格,那么试试这个。容易理解。另一个答案很像函数式编程,可能会让人困惑

[x for (x, y) in zip(list1, list2) if x == y]
list3 = list()
for x in range(min(len(list1),len(list2)):
    if list1[x] == list2[x]:
        list3.append(list1[x])
    else:
        break

假设list1和list2包含不同数量的单词,那么如何解决它??您是否有一个实际的问题要问,或者您是否还没有费心尝试代码?假设我正确理解了这一点,如果您想修改它,使其不包含超过较小字符串长度的单词,你可以做一些类似于n=minlenlist1,lenlist2的事情,然后返回在[:n]@Chad:上切片的理解,这完全不必要;我相信OP的描述表明他想尽快停下来。假设列表1和列表2包含不同数量的单词,在比较两个列表后,我需要找出基于索引的匹配列表。在上面的例子中,我需要找到list3=['this','is']。你能帮助我吗??