python中怎么比较两个列表的大小_Python:找到两个列表中存在的给定长度的公共子列表...

我必须找到一个有效的python代码来执行以下操作:

查找n包含在两个给定列表中的至少一个(如果存在的话)连续元素序列。

例如,使用n=3,这两个列表的结果将是['Tom', 'Sam', 'Jill']:lst1 = ['John', 'Jim', 'Tom', 'Sam', 'Jill', 'Chris']

lst2 = ['Chris', 'John', 'Tom', 'Sam', 'Jill', 'Jim']

下面的示例代码可以解决这个问题,但如果必须比较数十万行/列表,则需要永远这样做。任何有关如何优化此代码的性能以处理大量数据的建议将不胜感激!lst1 = ['John', 'Jim', 'Tom', 'Sam', 'Jill', 'Chris']

lst2 = ['Chris', 'John', 'Tom', 'Sam', 'Jill', 'Jim']

strNum = 3 #represents number of consecutive strings to search for

common_element_found = 'False'

common_elements = []

lst1length = len(lst1) - (strNum - 1)

lst2length = len(lst2) - (strNum - 1)

for x in range(lst1length):

ConsecutiveStringX = lst1[x] + ' ' + lst1[x + 1] + ' ' + lst1[x + 2]

for y in range(lst2length):

ConsecutiveStringY = lst2[y] + ' ' + lst2[y + 1] + ' ' + lst2[y + 2]

if ConsecutiveStringY == ConsecutiveStringX:

common_element_found = 'True'

common_elements.append(ConsecutiveStringY)

print('Match found: ' + str(common_elements))

break

if common_element_found == 'True':

common_element_found = 'False'

break

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值