一个小的子列表位置查找函数

sublist是original列表中的一部分,即子列表,如果存在sublist,那么就返回起始和结束位置,否则返回None

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def index_partof_list(original, sublist):
"""
子列表查找, 也可以用于字符串的查找
:param original: 一个列表
:type original:
:param sublist: sublist是original列表中的一部分,即子列表,如果存在sublist,那么就返回起始和结束位置,否
则返回None
:type sublist:
:return: 返回2个值,bool值和查找到的索引值,如果没查找到返回[] 如果找到一个或找到多个,返回 [(x1,y1),(x2,y2)]
:rtype:
"""
ori_len = len(original)
sub_len = len(sublist)
find_indexes = []
if ori_len < sub_len:
return find_indexes
for index in range(ori_len-sub_len+1):
if original[index:index + sub_len] == sublist:
find_indexes.append((index, index+ sub_len))
return find_indexes

ori = ['《', '邪', '少', '兵', '王', '》', '是', '冰', '火', '未', '央', '写', '的', '网', '络', '小', '说', '连', '载', '于', '旗', '峰', '天', '下']
sub = ['网', '络', '小', '说']
res = index_partof_list(ori,sub)
print(res)
------>
[(13, 17)]

一个小的子列表位置查找函数
https://johnson7788.github.io/2022/02/22/python-list/
作者
Johnson
发布于
2022年2月22日
许可协议