用几种条件连接并追加数组元素

时间:2018-07-12 00:45:52

标签: python

动人的家伙。

我有一个问题,关于如何在几个条件下附加数组元素。

假设我的数组是这样的:

A=[[100,Z],[102,A],...,[9901,A]]

和另一个类似的数组:

B=[[100,-0.22,0.99],[102,-0.442,0.99],...,[9901,-1.22,4.99]]

数组A和B的长度不同。 我想将两个数组元素都附加这样的条件:

if(A[0][0]==B[0][0]):
   temp = [B[0][1],B[0][2],A[0][1]]
   array_new.append(temp)

我尝试追加,并且可以工作,但是新数组的长度比A数组的短。

我的代码有问题吗?

这是我连接代码的方式:

for g in range(len(A)):
    for h in range(len(B)):
        if(B[h][0]==A[g][0]):
            temp = [B[h][1],B[h][2],A[g][1]]
            array.append(temp)

谢谢您,祝您愉快。

2 个答案:

答案 0 :(得分:0)

这与A和B中具有相同第一项的元素匹配。

将B转换为以第一个元素为键的字典。

A的第二个元素被转换为字符,您不能定义A递归。

A=[[100,'Z'],[102,'A'],[9901,'C']]

B=[[100,-0.22,0.99],[102,-0.442,0.99],[9901,-1.22,4.99]]

B_Dict = { b[0]:b  for b in B }

array_new = [ [B_Dict.get(a[0])[1],B_Dict.get(a[0])[2],a[1]] for a in A if B_Dict.get(a[0])]

print (array_new)

答案 1 :(得分:-1)

已编辑

如果正确缩进,则array的长度必须与A相同或小于A

修复缩进:

for g in range(len(A)):
  for h in range(len(B)):
    if(B[h][0]==A[g][0]):
      temp = [B[h][1],B[h][2],A[g][1]]
      array.append(temp)