从Python中的元组列表中获取配对元素

假设我有一个这样的元组列表(没有重复的任何数字):

lst = [(4, 1), (3, 8), (2, 9), (5, 6), (7, 0)]

我知道一个元素值a,我想找到配对值b.
但是,我不知道a是元组的第一个还是第二个元素.

有没有一种方法可以轻松,干净地找到它?

我尝试了这个:

a = 8
pair = next(t for t in lst if t[0] == a or t[1] == a)
b = pair[0] if pair[1] == a else pair[1]

这看起来不太好…是否存在更聪明的东西?

解决方法:

使用列表理解.

>>> lst = [(1, 4), (3, 8), (9, 2), (5, 6), (7, 0)]
>>> next(y if 8 == x else x for x,y in lst if 8 in (x,y))
3
>>> next(x[1] if 8 == x[0] else x[0] for x in lst if 8 in x)
3
上一篇:使用Bootstrap


下一篇:python中的半唯一元组? (又名元组主键?)