比较两个不等长度和不等维度列表

时间:2015-05-05 20:05:14

标签: python list python-2.7 loops

我有两个列表,ab

a=[['apple'],['pear'],['grapes'],['cherry'],['mangoes'],['banana']]
b=[['apple',15,14],['orange',30,43],['pear',6,67],['grapes',90,709],['cherry',23,9]]

我想要的结果是:

b=[['apple',15,14],['orange',30,43],['pear',6,67],['grapes',90,709],['cherry',23,9],['mangoes',0.0,0.0],['banana',0.0,0.0]]

我试图比较两个不等长度列表,并将一个列表中的唯一值附加到另一个不等维度列表中。

1 个答案:

答案 0 :(得分:0)

首先,我会制作a平面字符串列表。如果您从其他地方获得a,则可以使用

进行转换
a = [k[0] for k in a]

接下来,我会b成为dict,如有必要,再次使用

进行转换
b = dict((k[0], k[1:]) for k in b)

最后,您只想为b中尚未加入a的密钥的新值增加b

b.update(dict((k, [0.0,0.0]) for k in a if k not in b))

要转换回列表列表,请使用

b = [[key] + list(values) for k, values in b.iteritems()]