写一段python实现如下功能,记录数组A(n*m)中与数组B(n*1)中相同的数的索引位置
时间: 2024-12-16 16:30:45 浏览: 4
你可以使用Python的内置数据结构如列表推导式和字典来实现这个功能。首先,假设我们有两个数组`A`和`B`,其中`A`是一个二维数组(行数为n,列数为m),而`B`是一维数组(长度为n)。我们可以遍历`A`的每一行,然后检查该行的每个元素是否在`B`中存在。如果存在,就将它们的索引添加到结果字典中。
这是一个简单的例子:
```python
def find_common_indices(A, B):
# A.shape[0]获取A的行数,A.shape[1]获取A的列数
result = {val: [] for val in set(B)} # 创建一个字典,键为B中的值,初始值为列表
# 遍历A的所有行
for i in range(len(A)):
row = A[i] # 获取当前行
# 检查当前行的每个元素是否在B中,并记录索引
for j, element in enumerate(row):
if element in result:
result[element].append(i)
return result
# 示例用法:
A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
B = [1, 2, 5]
indices_dict = find_common_indices(A, B)
print(indices_dict) # 输出:{1: [0, 2], 2: [0], 5: [1]}
阅读全文