Python:如果嵌套列表的第二项等于另一个列表中嵌套列表的第二项,则获取嵌套列表的第一项

Python:如果嵌套列表的第二项等于另一个列表中嵌套列表的第二项,则获取嵌套列表的第一项,python,nested-lists,Python,Nested Lists,我有以下清单: a = [['a', 'x'], ['b', 'y'], ['c', 'z']] b = [['d', 'x'], ['e', 'y'], ['f', 'm']] 如何获取列表a和b的所有嵌套列表的第一项。列表a中每个嵌套列表的第二项与列表b中嵌套列表的第二项相同,但第三项除外 如何获得以下输出: ['a', 'd'] ['b', 'e'] 使用zip: 另一种方法可以是: r = [[a[i][0], b[i][0]] for i in range(len(a)) if a

我有以下清单:

a = [['a', 'x'], ['b', 'y'], ['c', 'z']]
b = [['d', 'x'], ['e', 'y'], ['f', 'm']]
如何获取列表a和b的所有嵌套列表的第一项。列表a中每个嵌套列表的第二项与列表b中嵌套列表的第二项相同,但第三项除外

如何获得以下输出:

['a', 'd']
['b', 'e']
使用zip:

另一种方法可以是:

r = [[a[i][0], b[i][0]] for i in range(len(a)) if a[i][1] == b[i][1]]
print r
输出:

使用和元组解包:

>>> a = [['a', 'x'], ['b', 'y'], ['c', 'z']]
>>> b = [['d', 'x'], ['e', 'y'], ['f', 'm']]
>>> [[a1, b1] for (a1, a2), (b1, b2) in zip(a, b) if a2 == b2]
[['a', 'd'], ['b', 'e']]
[['a', 'd'], ['b', 'e']]
>>> a = [['a', 'x'], ['b', 'y'], ['c', 'z']]
>>> b = [['d', 'x'], ['e', 'y'], ['f', 'm']]
>>> [[a1, b1] for (a1, a2), (b1, b2) in zip(a, b) if a2 == b2]
[['a', 'd'], ['b', 'e']]