Python 从两个数组创建元素的映射

Python 从两个数组创建元素的映射,python,arrays,python-3.x,associative-array,Python,Arrays,Python 3.x,Associative Array,我有两个数组,它们是聚类算法的输出。是否有可能自动找到关联映射 考虑两个标签阵列: array1 = [0,0,1,2,3] array2 = [4,4,6,8,7] 从视觉上看,它们看起来是一样的,但是对于一个更大的标签集,我想找到一个像{0:4,1:6,2:8,3:7}这样的映射 Python有什么方法可以做到这一点吗 对于类似的解决方案,我已经查看了sklearn metrics,但还没有找到运气。任何帮助都将不胜感激。是的,您可以通过将两个列表一起创建一个字典,其中键作为第一个列表的元

我有两个数组,它们是聚类算法的输出。是否有可能自动找到关联映射

考虑两个标签阵列:

array1 = [0,0,1,2,3]
array2 = [4,4,6,8,7]
从视觉上看,它们看起来是一样的,但是对于一个更大的标签集,我想找到一个像
{0:4,1:6,2:8,3:7}
这样的映射

Python有什么方法可以做到这一点吗


对于类似的解决方案,我已经查看了sklearn metrics,但还没有找到运气。任何帮助都将不胜感激。

是的,您可以通过将两个列表一起创建一个字典,其中键作为第一个列表的元素,值作为第二个列表的元素,并将输出转换为字典

array_1 = [0,0,1,2,3]
array_2 = [4,4,6,8,7]

#Zip the two lists together, and create a dictionary out of the zipped lists
mapping = dict(zip(array_1, array_2))
print(mapping)
输出将是

{0: 4, 1: 6, 2: 8, 3: 7}

请注意,如果在
数组_1
中有重复元素,但
数组_2
中的对应元素不同,则将在重复元素的映射中拾取
数组_2
的最后一个元素,例如
[0,0,1,1]
[4,5,6,7]
。映射将是
{0:5,1:7}
,因为
5
是为重复元素
0
选择的,而
7
是为重复元素
1

选择的。如果数组1中的相同元素在数组2中没有相同的元素,那么预期的行为是什么呢,如果使用dict(),则跳过元素。这个问题还有其他选择吗?是的,那么您需要一个值列表,例如,g
{0:[4,5],1:[6,7]}