【发布时间】:2021-09-14 10:07:45
【问题描述】:
在this question 中有一个关于如何检查一个列表是否包含在另一个列表中的好答案。
但是如何检查一个列表是否包含在另一个列表中但考虑到顺序?
例如
a= [1,2,3,5]
b= [1,2,3,4,5]
if set(a).issubset(b):
print('a is contained in b')
else:
print('No')
显然给了我“a包含在b中”
不幸的是,如果 a= [1,3,2,5] 它给了我相同的结果
我想要以下
- a=[1,3,2,5] -> 否
- a=[1,2,3,5] -> 是的
- a=[3,4,5] -> 是的
- a=[1,2,4,3,5] -> 否
- a=[1,2,3,4,5] -> 是
【问题讨论】:
-
作为通用算法:并行迭代两个列表,如果
a中的当前项与b相同,则推进两个迭代器,如果它们不同,则只推进b的迭代器。如果以这种方式耗尽a的迭代器,a是b的子集。如果你先到达b的终点,那不是。 -
是否包含订单?例如列表 b 为 [1,1,2,3,3,4,6,6,5]。那么在这种情况下 a in b ?
-
this question 可能重复?
-
@KansaiRobot 分享挑战链接?
-
@KansaiRobot 可迭代的通用可迭代解决方案。
标签: python