有没有一种方法可以仅搜索元组列表中的第一个坐标?

4
假设我有一个如下所示的元组列表:
a = [('a','b'), ('c','d'), ('e','f')]
如果我执行此行代码 'a' in a,将返回False
有没有一种方法告诉Python“仅搜索第一个参数,并接受第二个参数中的任何内容”?
这样我就可以搜索像这样的内容 ('a', *) in a 并得到结果 True
2个回答

6

尝试使用any(如果任意元素逻辑上为True,则返回True)与map一起使用(比较元组中的每个第一个元素):

any(map(lambda x: x[0] == "a", a)))

5
你可以使用列表推导式来实现。
a = [('a','b'), ('c','d'), ('e','f')]
'a' in [i[0] for i in a]

或者针对更大的搜索

'a' in {i[0] for i in a}

因为在集合中查找条目速度更快。
两个表达式都将返回

True

'a' in [i[0] 也会返回 aaaa 的真值。 - Harshal Parekh
1
'a' in ['aaa'] 将返回 False。 - Leo Arad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接