我有两个列表,它们基本上需要根据它们的匹配项目(列表)相互映射。输出是已映射的对的列表。当要映射的列表长度为一时,我们可以在另一个列表中查找直接匹配。问题出现,当被映射列表的长度为> 1,我需要找到,如果在一个列表是B.在Python中将两个列表根据其项目映射到列表对中
的一个子集输入:
A = [['point'], ['point', 'floating']]
B = [['floating', 'undefined', 'point'], ['point']]
我的失败代码:
C = []
for a in A:
for b in B:
if a == b:
C.append([a, b])
else:
if set(a).intersection(b):
C.append([a, b])
print C
预期输出:
C = [
[['point'], ['point']],
[['point', 'floating'], ['floating', 'undefined', 'point']]
]
为什么'[['point','floating'],['point']]'不在预期的输出中? – 2013-05-03 19:52:08
@ashwini请参阅上面的说明。我已经解释了Y. – Shankar 2013-05-03 19:56:35
“长度> 2”(您现在更新了)正在窃听我,请参阅下面的解决方案。 – 2013-05-03 20:09:55