在Python中将两个列表合并到另一个列表中
假设我有两个这样的列表在Python中将两个列表合并到另一个列表中,python,arrays,list,Python,Arrays,List,假设我有两个这样的列表 Ii = [[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]] ci = [11,5,3,5,5,4] I = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [11, 0, 0, 0, 5, 0, 0, 3, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 5, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0,
Ii = [[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]]
ci = [11,5,3,5,5,4]
I =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[11, 0, 0, 0, 5, 0, 0, 3, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 5, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 4, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 5, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
I =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 1, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
现在我想做另一个列表(I),它看起来像这样
Ii = [[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]]
ci = [11,5,3,5,5,4]
I =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[11, 0, 0, 0, 5, 0, 0, 3, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 5, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 4, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 5, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
I =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 1, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
我试过这个密码
m,n = 8,10
I = [[0 for j in range(n)] for i in range(m)]
for i, j in Ii:
I[m - i][j - 1] = 1
其输出如下所示
Ii = [[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]]
ci = [11,5,3,5,5,4]
I =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[11, 0, 0, 0, 5, 0, 0, 3, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 5, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 4, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 5, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
I =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 1, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
现在我有1个我想要的ci值。但是我想把ci的值放在1的位置。需要我如何做的帮助吗
m = 8
n = 10
Ii = [[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]]
ci = [11,5,3,5,5,4]
I = [[0 for j in range(n)] for i in range(m)]
for z, *j, in enumerate(Ii):
for i, k in j:
I[m-i][k-1] = ci[z]
for i in I:
print(i)
什么是
n
什么是m
?你能解释一下创建I
表单Ii
和ci
背后的逻辑吗?你能解释一下两个输入列表导致4x4列表的逻辑吗?我想可能是“将第二个列表中的值分配给第一个列表中相应的坐标”,但这不是示例输出的样子。很抱歉,缺少信息,对于4x4矩阵,m=4和n=4(不使用n)。逻辑是创建一个列表,该列表在垂直行(m-vertical)中有一个反向索引号,在水平索引中有一个反向索引号(horizontal-1)。但是你也可以直接使用(i,j)作为索引,没有问题。我只需要知道如何传递ci的值来替换1?Henry bro说列表索引超出了8x8矩阵的范围。bro Ii和ci将具有相同的长度,但输出I可以具有不同的长度。它不适用于以下值:m=8 n=10 Ii=[[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]]ci=[11,5,3,5,4]请检查。输出错误。你需要在(7,1)单元格中放入11,在(7,5)单元格中放入5,在(7,8)单元格中放入3,依此类推。您将11放入多个单元格中。您无法在任何逻辑中调用索引号,因为它不可关联。您需要在我的代码中搜索“1”,并将其替换为ci值。不,兄弟,您错了。m可以是任何值。它与Ii无关。请检查此代码:m=8 n=10 Ii=[[7,1],[7,5],[7,8],[5,8],[2,8],[3,5]]ci=[11,5,3,5,5,4]I=[0表示范围(n)中的j],[I]表示范围(m)],I:I[m-I][j-1]=1
这将把1放在我使用反向索引方法的Ii的所有位置。它与ci无关。m是独立的,你可以把m=100,这也行。