不知道这是否是pythonic,但是我可以这样进行:
def is_sublist(a, b):
if not a: return True
if not b: return False
return b[:len(a)] == a or is_sublist(a, b[1:])
在本次讨论中提供了较短的解决方案,但与解决方案存在相同的问题set
-它不考虑元素的顺序。
更新: 受MAK的启发,我介绍了更简洁明了的代码版本。
更新:由于切片中的列表复制,因此此方法存在性能问题。另外,由于它是递归的,因此您可能会遇到长列表的递归限制。要消除复制,可以使用Numpy slices创建视图,而不是copys。如果遇到性能或递归限制问题,则应使用不递归的解决方案。