【问题标题】:Combination of List and Nested List by Index按索引组合列表和嵌套列表
【发布时间】:2021-02-10 11:00:39
【问题描述】:

我的脚本的输出是一个列表和一个嵌套列表。我想按索引获取两个列表的组合。在这种情况下,我有以下两个列表:

x = [0, 1, 2, 3]

y = [[0, 1, 2, 3],
 [0, 1, 2, 3, 4, 5, 6, 7, 8],
 [0, 1, 2, 3, 4],
 [0, 1, 2, 3, 4, 5, 6, 7, 8]]

所需的输出应如下所示。

[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 
7), (1, 8), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), 
(3, 6), (3, 7), (3, 8)]

我查看了很多关于 itertools.combinations 和 itertools.product 的帖子,但我找不到任何关于同时循环和组合的信息,我认为这是解决问题的方法。我想得到所有组合 x[0] 和 y[0],然后是 x[1] 和 y[1],等等。

【问题讨论】:

  • 您正在寻找zip... 但说真的,编程不是在线寻找解决方案,而是将您需要解决的问题分解成计算机可以处理的部分。

标签: python list combinations itertools


【解决方案1】:

您可以通过列表推导来做到这一点。

x = [0, 1, 2, 3]

y = [[0, 1, 2, 3],
 [0, 1, 2, 3, 4, 5, 6, 7, 8],
 [0, 1, 2, 3, 4],
 [0, 1, 2, 3, 4, 5, 6, 7, 8]]

final = [(i,j) for i in x for j in y[i]]

【讨论】:

  • 谢谢米切尔。这正是我所需要的。
【解决方案2】:

看来你打算做两个数组的 catidion 乘法。这是参考检查,如果对您有用,请告诉我。 Cartesian product of x and y array points into single array of 2D points

【讨论】:

    猜你喜欢
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多