蟒蛇 - 比较两个列表,看看是否发生在另一个连续

我一直在试图做一个函数,可以采取两个任何大小的列表(比如说,列表A和列表B),并看到列表B是否出现在列表中A,但是连续且以相同的顺序。如果以上情况属实,则返回True,否则返回False。蟒蛇 - 比较两个列表,看看是否发生在另一个连续

例如,

A:[9,0,**1,2,3,4,5,6,**7,8] and B:[1,2,3,4,5,6] is successful 

A:[1,2,0,3,4,0,5,6,0] and B:[1,2,3,4,5,6] is unsuccessful.

A:[1,2,3,4,5,6] and B [6,5,3,2,1,4] fails because despite having the same

numbers, they aren't in the same order

我试着这样做使用嵌套循环到目前为止并感到有点困惑,去哪里

回答:

就试试这个:

L1 = [9,0,1,2,3,4,5,6,7,8] 

L2 = [1,2,3,4,5,6]

c = 0

w = 0

for a in range(len(L2)):

for b in range(w+1, len(L1)):

if L2[a] == L1[b]:

c = c+1

w = b

break

else:

c = 0

if c == len(L2):

print('yes')

break

在这里,你是否L2的元素在L1如果是这样打破了第一循环记得在你离开和L2的下一个元素是一样的下一个元素的l1等。

最后一部分是检查这是否发生的次数与l2的长度相同。如果是的话,那么你知道这个说法是正确的!

回答:

我转换的整个列表变成一个字符串,然后发现字符串的一个子

列表时转换成一个字符串变得

str(a)='[9,0,1,2,3,4,5,6,7,8]' 

其中当当我们剥去串变得

str(a).strip('[]')='9,0,1,2,3,4,5,6,7,8' 

现在的问题只是转换为

检查是否有在字符串的子 所以我们可以我们在运营商检查子

解决方案

a=[9,0,1,2,3,4,5,6,7,8] 

b=[1,2,3,4,5,6]

print(str(b).strip('[]') in str(a).strip(']['))

testcase1

testcase2

回答:

如果你的数组不是巨大的,如果你能找到一种方法,你的数组到一个字符串中的每个元素映射你可以使用:

list1 = [9,0,1,2,3,4,5,6,7,8] 

list2 = [1,2,3,4,5,6]

if ''.join(str(e) for e in list2) in ''.join(str(e) for e in list1):

print 'true'

它只是提出两个字符串从列表,比使用'在' 找到任何accorence

回答:

使用任何功能

any(A[i:i+len(B)] == B for i in range(len(A) - len(B) + 1)) 

demo

回答:

试试这个:

L1 = [9,2,1,2,0,4,5,6,7,8] 

L2 = [1,2,3,4,5,6]

def sameorder(L1,L2):

for i in range(len(L1)-len(L2)+1):

if L1[i:len(L2)+i]==L2:

return True

return False

回答:

您可以创建一个可分析的a子列表:

def is_consecutive(a, b): 

return any(all(c == d for c, d in zip(b, i)) for i in [a[e:e+len(b)] for e in range(len(a)-len(b))])

cases = [[[9, 0, 1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6]], [[1, 2, 0, 3, 4, 0, 5, 6, 0], [1, 2, 3, 4, 5, 6]], [[1, 2, 3, 4, 5, 6], [6, 5, 3, 2, 1, 4]]]

final_cases = {"case_{}".format(i):is_consecutive(*a) for i, a in enumerate(cases, start=1)}

输出:

{'case_3': False, 'case_2': False, 'case_1': True} 

以上是 蟒蛇 - 比较两个列表,看看是否发生在另一个连续 的全部内容, 来源链接: utcz.com/qa/265540.html

回到顶部