【问题标题】:python how to find unique pairs from 2 lists [duplicate]python 如何从 2 个列表中找到唯一对 [重复]
【发布时间】:2023-02-19 02:58:37
【问题描述】:

我有以下列表列表:

data = [[1,2,3],[4,5,6]]

我想生成如下内容:

[1,4]
[1,5]
[1,6]
[2,4]
[2,5]
[2,6]
[3,4]
[3,5]
[3,6]

什么可以产生预期的结果?澄清一下,我正在从两个子列表中的每一个中寻找所有唯一的 1 项对。

【问题讨论】:

标签: python cartesian-product


【解决方案1】:
import itertools
data = [[1,2,3],[4,5,6]]
print(list(itertools.product(*data)))

输出:

[(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

【讨论】:

    【解决方案2】:

    您可以将 itertools.product() 与列表解包结合使用,以生成包含每个子列表中的一个元素的元组。然后,您可以使用 map() 将每个元组转换为列表。

    from itertools import product
    list(map(list, product(*data)))
    

    这输出:

    [[1, 4], [1, 5], [1, 6], [2, 4], [2, 5], [2, 6], [3, 4], [3, 5], [3, 6]]
    

    【讨论】:

      【解决方案3】:
      result = []
      for x in data[0]:
          for y in data[1]:
              result.append([x, y])
      

      或一行:

      [(x,y) for x in data[0] for y in data[1]]
      

      这会给你一个元组列表

      列表列表:

      list(map(list, [(x,y) for x in data[0] for y in data[1]]))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-26
        • 1970-01-01
        • 2021-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多