下面是一个按巧合顺序搜索数组列表的解决方法的代码示例:
def coincidence_search(arr, search_list):
result = []
for item in search_list:
found = False
for i, sub_arr in enumerate(arr):
if item in sub_arr:
result.append((item, i, sub_arr.index(item)))
found = True
break
if not found:
result.append((item, -1, -1))
return result
# 示例用法
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
search_list = [2, 5, 9, 10]
result = coincidence_search(arr, search_list)
for item in result:
print(f"Item: {item[0]}, Found in sub-array index: {item[1]}, Found at index: {item[2]}")
上面的代码中,coincidence_search
函数接受一个二维数组arr
和一个要搜索的列表search_list
作为参数。它遍历search_list
中的每个元素,并在arr
中按顺序搜索该元素,直到找到为止。如果找到了匹配的元素,则将(item, i, sub_arr.index(item))
添加到结果列表result
中,其中item
是要搜索的元素,i
是找到元素的子数组索引,sub_arr.index(item)
是找到元素在子数组中的索引。如果没有找到匹配的元素,则将(item, -1, -1)
添加到结果列表result
中。
最后,我们使用示例数据调用coincidence_search
函数,并打印每个匹配结果的信息。输出结果如下:
Item: 2, Found in sub-array index: 0, Found at index: 1
Item: 5, Found in sub-array index: 1, Found at index: 1
Item: 9, Found in sub-array index: 2, Found at index: 2
Item: 10, Found in sub-array index: -1, Found at index: -1
在这个例子中,数组search_list
中的2在arr
的第一个子数组中的索引为1,5在第二个子数组中的索引为1,9在第三个子数组中的索引为2,而10没有在任何子数组中找到,因此返回-1。
上一篇:按前缀要求所有命名空间
下一篇:按其DISTINCT计算表格数