[英]Function that returns a list of 6-element or 3-element tuples
我想编写一个函数来比较两个不同大小的list
的每个3-tuple
的 3 个元素。 具体来说,我想写一个函数match
如下:
list1 = ['a','b', 'a', 'a', 'c', 'a', 'c', 'c', 'a']; #just an example of a list1
list2 = ['c','a', 'a', 'c', 'a', 'a']; #just an example of a list2
def match(list1, list2, storage = []):
for i in range(0, len(list1), 3):
for j in range(0, len(list2), 3):
#matching rule
if (list1[i] == list2[j+1] and list1[i] == list2[j+2]) or (list1[i] == list2[j+1] and (list1[i] == list1[i+1] or list1[i] == list1[i+2])) or (list1[i] == list1[i+2] or (list1[i] == list1[i+1]) and (list2[j] == list2[j+1] or list2[j] == list2[j+2])) or (list2[j] == list1[i+1] and list2[j] == list1[i+2]):
storage.append([list1[i], list1[i+1], list1[i+2], list2[j], list2[j+1], list2[j+2]])
else: storage.append([list1[i], list1[i+1], list1[i+2]])
return storage; #outside of the outer 'for' loop - obtain a list of all 6-element and/or 3-element tuples
现在在获得所有 3 元组对之后(例如,列表storage
1 个元素的形式为['a','b', 'a','c','a', 'a']
),我想要获取storage
中包含['a', 'b', 'a']
的所有元素的索引作为 6 元素列表的一部分(例如['a','b', 'a','c','a', 'a']
) 或 3 元素列表(例如['a','b', 'a']
)- storage
仅有的两种列表类型。
题。 谁能帮我验证我的功能是否正确,然后是查找索引的部分? 我将不胜感激任何投入。
这可能会帮助您:
str1 = "abaacbabaacbabca" #...
l = []
l.append("caacaa")
l.append("ghijhg") # any 6 letter long string
l.append("acbaca")
for str2 in l:
if any(str1[i:i+3] in str2 for i in range(len(str1)-3)):
print(str2)
它返回(打印):
caacaa
acbaca
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.