gpt4 book ai didi

python - 如何获得两个不同列表的所有可能组合?

转载 作者:行者123 更新时间:2023-11-30 23:19:10 26 4
gpt4 key购买 nike

我很难理解我的问题:

我有 2 个列表:

from = ['A', 'B', 'C']
to = ['D', 'E', 'F']

我需要生成一个矩阵,将一个列表中的每个项目组合到另一个列表中,如下所示:

final = [[['A', 'D'], ['B', 'E'], ['C', 'F']],
[['A', 'D'], ['B', 'F'], ['C', 'E']],
[['A', 'E'], ['B', 'F'], ['C', 'D']],
[['A', 'E'], ['B', 'D'], ['C', 'F']],
[['A', 'F'], ['B', 'D'], ['C', 'E']],
[['A', 'F'], ['B', 'E'], ['C', 'D']]]

我试图用这个来做到这一点:

for i in range(len(initial)):
for j in range(len(transformed)):
self.semantic_networks[j][i][0] = self.initial_figure[i]['name']
self.semantic_networks[i][j][1] = self.transformed_figure[(j + i) % len(self.transformed_figure)]['name']

但是,我只得到顶部:

[['A', 'D'], ['B', 'E'], ['C', 'F']]
[['A', 'E'], ['B', 'F'], ['C', 'D']]
[['A', 'F'], ['B', 'D'], ['C', 'E']]
[[0, 0], [0, 0], [0, 0]]
[[0, 0], [0, 0], [0, 0]]
[[0, 0], [0, 0], [0, 0]]

我想得到什么?组合?排列?组合的组合??

有什么提示吗???

最佳答案

申请itertools.permutations在第二个列表上,然后 zip每个排列与第一个列表。

from itertools import permutations

lst1 = ['A', 'B', 'C']
lst2 = ['D', 'E', 'F']

for p in permutations(lst2):
print zip(lst1, p)
#
[('A', 'D'), ('B', 'E'), ('C', 'F')]
[('A', 'D'), ('B', 'F'), ('C', 'E')]
[('A', 'E'), ('B', 'D'), ('C', 'F')]
[('A', 'E'), ('B', 'F'), ('C', 'D')]
[('A', 'F'), ('B', 'D'), ('C', 'E')]
[('A', 'F'), ('B', 'E'), ('C', 'D')]

关于python - 如何获得两个不同列表的所有可能组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26197821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com