创建一个名为_subsequence的函数,它接受两个参数,两个整数列表,并返回第二个列表是否是第一个列表的子序列。要使第二个列表成为子序列,其中的每个值必须以相同的顺序出现在第一个列表中。这些值之间可能存在差距。
我正在努力根据第一个列表的顺序返回值,这是我尝试的方式:
def is_subsequence(list1, list2):
if list1 == list2:
return True
else:
for i in range(len(list1)):
if list2 in list1:
return False
答案 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']
'''