python - 用 Python 匹配 Arraylist 中的数组索引
问题描述
我有一个数组列表。我想匹配数组并添加最后一列 uuid。为此,数组中的第二个和第三个索引必须相同。它们可以等于 2 -> 3 或 3-> 2。
我想用一个例子来解释这一点。
import uuid as id
test1 = [['412', '413', 'AAAAA', 'BBBBB', 'indian'],
['412', '414', 'AAAAA', 'CCCCC', 'indian'],
['413', '415', 'BBBBB', 'DDDDD', 'indian'],
['413', '415', 'EEEEE', 'FFFFF', 'indian'],
['413', '414', 'BBBBB', 'CCCCC', 'indian'],
['414', '415', 'CCCCC', 'DDDDD', 'indian'],
['416', '417', 'FFFFF', 'GGGGG', 'indian']]
x = str(id.uuid4())[:8]
将 x 值附加到数组的最后
在这里,如果 AAAAA 会在所有其他系列中找到它的值,它会匹配,但不一定有 AAAAA。BBBBB 也可以。无论是在第二或第三指数上都没有关系。
必须输出
test1 = [['412', '413', 'AAAAA', 'BBBBB', 'indian', 'bb5c11ed'], # same_1
['412', '414', 'AAAAA', 'CCCCC', 'indian', 'bb5c11ed'], # same_1
['413', '415', 'BBBBB', 'DDDDD', 'indian', 'bb5c11ed'], # same_1
['413', '415', 'EEEEE', 'FFFFF', 'indian', 'c47c394e'], # same_2
['413', '414', 'BBBBB', 'CCCCC', 'indian', 'bb5c11ed'], # same_1
['414', '415', 'CCCCC', 'DDDDD', 'indian', 'bb5c11ed'], # same_1
['416', '417', 'FFFFF', 'GGGGG', 'indian', 'c47c394e']] # same_2
我知道我无法很好地解释它。如果你问你哪里不明白,我可以帮你。
解决方案
这就是我阅读问题的方式。
您有一个带有顶点AAAAA, BBBBB, CCCCC
等的图。每条记录都定义了边,并且同一连接组件中的每条边都应获得相同的 uuid。
现在问题减少到找到连接的组件。有许多算法可以解决它。