Python 两种不等长和不等维列表的比较

Python 两种不等长和不等维列表的比较,python,list,python-2.7,loops,Python,List,Python 2.7,Loops,我有两个列表,a和b: 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],['cherr

我有两个列表,
a
b

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]]

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

首先,我将创建一个字符串的平面列表。如果您从其他地方获得
a
,您可以使用

a = [k[0] for k in a]
接下来,我将制作
b
a
dict
,必要时再次使用

b = dict((k[0], k[1:]) for k in b)
最后,您只需要为
a
中但尚未在
b
中的键增加
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()]

为什么
a
是一个列表列表,而不仅仅是
['apple','pear',…]
?而且似乎
b
真的想成为一个
dict
{'apple':(15,14),'orange':(30,43),…}
这样的
a
仅仅是一个(可能不完整的)按键列表(实际的和期望的)对于
b
。请包括您的。列表“a”是从其他一些列表导入的数据,这些列表以其原始形式具有多个已被删除的列,但列表状态列表仍保留。我可以将列表重新格式化为[‘苹果’、‘梨’、…],但这意味着又多了一步。但我仍然不知道如何获得列表“b”的预期结果,如何按照最初的要求将“b”转换回列表。b将输入其他列表或以列表格式存储附加数据。感谢您提供的解决方案,效果很好,但可以将列表转换为dict。