Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列表内列表与列表内其他列表的连接_Python - Fatal编程技术网

Python 列表内列表与列表内其他列表的连接

Python 列表内列表与列表内其他列表的连接,python,Python,我想将列表中的每个列表与列表中的其他列表连接起来。这就是我想要的:给定列表A和B,其中每个都有两个列表,我想连接A[0]+B[0],A[0]+B[1],A[1]+B[0],A[1]+B[1]。我在下面编写了一个简单的代码: def concatenate(seq1, seq2): for i in range(len(seq1)): for j in range(len(seq2)): return seq1[i] + seq2[j] 当我把[1

我想将列表中的每个列表与列表中的其他列表连接起来。这就是我想要的:给定列表A和B,其中每个都有两个列表,我想连接A[0]+B[0],A[0]+B[1],A[1]+B[0],A[1]+B[1]。我在下面编写了一个简单的代码:

def concatenate(seq1, seq2):
    for i in range(len(seq1)):
        for j in range(len(seq2)):
            return seq1[i] + seq2[j]

当我把[1,2],[3,4],[2,3],[4,5]]作为论点时,我想要[1,2,2,3],[1,2,4,5],[3,4,2,3],[3,4,4,5],[1,2,2,3],但我现在只得到[1,2,2,3]。是否有解决此问题的方法?

您当前仅返回第一个结果。任何给定函数中的return语句都将返回一次,然后退出该函数。所发生的事情是,当您的代码到达那里并连接两个列表时,它将使用第一个列表并退出

您需要做的是返回所有结果的列表:

def串联(seq1,seq2):
res=[]
对于范围内的i(len(seq1)):
对于范围内的j(len(seq2)):
附件(序号1[i]+序号2[j])
返回res

这样,您将返回一个包含所有列表的值。

您当前只返回第一个结果。任何给定函数中的return语句都将返回一次,然后退出该函数。所发生的事情是,当您的代码到达那里并连接两个列表时,它将使用第一个列表并退出

您需要做的是返回所有结果的列表:

def串联(seq1,seq2):
res=[]
对于范围内的i(len(seq1)):
对于范围内的j(len(seq2)):
附件(序号1[i]+序号2[j])
返回res

这样,您将返回一个包含所有列表的值。

anerisgreat的答案是正确的!(这就是为什么我也投了赞成票)

我只是想对代码进行简化,使其看起来更“干净”。实际上,您不需要在列表的索引上迭代
for
循环,您可以直接使用列表的元素

def concatenate(seq1, seq2):
    res = []
    for i in seq1:
        for j in seq2:
            res.append(i + j)
    return res

对不起,如果可以的话,我会将此作为评论发布,但我没有足够的声誉点数

anerisgreat的回答是正确的!(这就是为什么我也投了赞成票)

我只是想对代码进行简化,使其看起来更“干净”。实际上,您不需要在列表的索引上迭代
for
循环,您可以直接使用列表的元素

def concatenate(seq1, seq2):
    res = []
    for i in seq1:
        for j in seq2:
            res.append(i + j)
    return res

对不起,如果可以的话,我会将此作为评论发布,但我没有足够的声誉点数

列表理解方法是:

seq1 = [[1,2],[3,4]]
seq2 = [[2,3],[4,5]]

res = [(seq1[i] + seq2[j])  for i in range(len(seq1)) for j in range(len(seq2))]

res
> [[1, 2, 2, 3], [1, 2, 4, 5], [3, 4, 2, 3], [3, 4, 4, 5]]

清单理解方法是:

seq1 = [[1,2],[3,4]]
seq2 = [[2,3],[4,5]]

res = [(seq1[i] + seq2[j])  for i in range(len(seq1)) for j in range(len(seq2))]

res
> [[1, 2, 2, 3], [1, 2, 4, 5], [3, 4, 2, 3], [3, 4, 4, 5]]

[[1,2],[3,4]]
[[2,3],[4,5]]
的笛卡尔积给出
([1,2],[2,3])
([1,2],[4,5])
([3,4],[2,3]),
([3,4,5])
。然后你只需要在每个输出对中加入列表。
[[1,2],[3,4]]
[[2,3],[4,5]
的笛卡尔积给出
([1,2],[2,3])
([1,2],[4,5])
([3,4],[2,3]),
([3,4,5])
。然后,您只需要在每个输出对中加入列表。