a = ('one', 'two')
b = ('ten', 'ten')
z = [('four', 'five', 'six'), ('one', 'two', 'twenty')]
我正在尝试1)看看我的元组中的前两个元素(例如a或b)是否与我的元组列表中的前两个元素(z)匹配。 2)如果匹配,我想返回元组的第三个元素
所以我想得到
myFunc(a,z) -> 'twenty'
myFunc(b,z) -> None
答案 0 :(得分:5)
使用生成器表达式和next
:
>>> a = ('one', 'two')
>>> b = ('ten', 'ten')
>>> z = [('four', 'five', 'six'), ('one', 'two', 'twenty')]
>>> next((x[2] for x in z if x[:2] == a), None)
'twenty'
>>> next((x[2] for x in z if x[:2] == b), None)
>>>
答案 1 :(得分:3)
最简单的解决方案似乎是:
def myFunc(t, tList):
return [r[-1] for r in tList if r[:2] == t] or None