Python 使用元组中的第一个值获取元组中的第二个值

Python 使用元组中的第一个值获取元组中的第二个值,python,Python,如标题所示,是否有方法通过使用第一个值访问元组的第二个值? 例如:给定一个元组列表:[Street',2',Utilities',3',CentralAir',5],我们可以使用索引'CentralAir'访问值'5'吗?对于您的用例,构建dict以获取所需的值更方便 例如: >>> tuples = [('Street', 2), ('Utilities', 3), ('CentralAir', 5)] >>> d = dict(tuples) >&g

如标题所示,是否有方法通过使用第一个值访问元组的第二个值?
例如:给定一个元组列表:[Street',2',Utilities',3',CentralAir',5],我们可以使用索引'CentralAir'访问值'5'吗?

对于您的用例,构建dict以获取所需的值更方便

例如:

>>> tuples = [('Street', 2), ('Utilities', 3), ('CentralAir', 5)]
>>> d = dict(tuples)
>>> d
{'Street': 2, 'Utilities': 3, 'CentralAir': 5}
>>> d['CentralAir']
5
一个非常简单的解决方案

ar = [('Street', 2), ('Utilities', 3), ('CentralAir', 5)]
value = next(filter(lambda x: x[0] == 'CentralAir', ar))[1] # returns 5

dict['Street',2'Utilities',3'CentralAir',5]['CentralAir']?只要第一个元素都是可散列的,这可能是最简单的方法。或者,您可以迭代列表,直到找到所需的列表,例如,列表理解[key的值,['Street',2',Utilities',3',CentralAir',5],如果key='CentralAir',将为您提供[5]。否,但是,您可以从该列表创建一个字典来执行此操作。当您只需要第一个元素时,将筛选器对象强制转换到列表的值是什么?为什么不调用iterable上的next?如果OP只想执行一次查找怎么办?创建一个完整的字典还值得吗?谢谢,但是有没有其他方法可以在不将它更改为dict的情况下完成它?@Neil在最坏的情况下,要找到值,您必须遍历所有元组列表。这适用于每次搜索密钥时。使用dict,您只需遍历列表一次,就可以在固定的摊销时间进行查找。所以,是的,我认为这是值得的,除非在整个程序执行生命周期中只需要做一次。