返回第一个列表的子序列

时间:2018-03-16 03:47:19

标签: python

创建一个名为_subsequence的函数,它接受两个参数,两个整数列表,并返回第二个列表是否是第一个列表的子序列。要使第二个列表成为子序列,其中的每个值必须以相同的顺序出现在第一个列表中。这些值之间可能存在差距。

我正在努力根据第一个列表的顺序返回值,这是我尝试的方式:

def is_subsequence(list1, list2):
if list1 == list2:
    return True
else:
    for i in range(len(list1)):
        if list2 in list1:
    return False    

1 个答案:

答案 0 :(得分:0)

由于您没有提供任何样本数据以及您想要返回的示例,因此根据可用信息,我可以提出最佳效果。这是python 2代码。如果你需要python 3,你必须自己调整它。

#!python2

lst1 = [['a', '1'], ['b', '2'], ['c', '3'], ['d', '4'], ['e', '5']]
lst2 = [['b', '2'], ['d', '4'], ['f', '6'], ['h', '8'], ['j', '10']]

# comparing by index 0 and index 1, prints lst1 elements that are in lst2
def is_seq(lst1, lst2):
    for i in lst1:
        if any(i[0] and i[1] in sublst for sublst in lst2):
            print i

print is_seq(lst1, lst2)

'''
['b', '2']
['d', '4']
'''