获取包含元组的列表的索引,其中元组的第一个元素与模式匹配
Posted
技术标签:
【中文标题】获取包含元组的列表的索引,其中元组的第一个元素与模式匹配【英文标题】:Get index of a list with tuples in which the first element of the tuple matches pattern 【发布时间】:2021-08-21 08:20:25 【问题描述】:我有一个元组列表:
countries = [('Netherlands','31'),
('US','1'),
('Brazil','55'),
('Russia','7')]
现在,我想根据元组中的第一项找到列表的索引。
我尝试过countries.index('Brazil')
,我希望输出为2
。但相反,这会返回一个 ValueError:
ValueError: 'Brazil' is not in list
我知道我可以将此列表转换为 pd DataFrame,然后在第一列中搜索模式匹配。但是,我怀疑有更快的方法来做到这一点。
【问题讨论】:
【参考方案1】:您可以使用enumerate()
查找您的索引:
试试:
idx = next(i for i, (v, *_) in enumerate(countries) if v == "Brazil")
print(idx)
打印:
2
【讨论】:
谢谢!似乎这段代码返回了第一个索引的索引,这足以解决我的问题。只是基于我自己的好奇心:您是否知道在适用时会返回多个索引的替代方案? @Emil 你可以使用列表理解,例如:indices = [i for i, (v, *_) in enumerate(countries) if v == "Brazil"]
以上是关于获取包含元组的列表的索引,其中元组的第一个元素与模式匹配的主要内容,如果未能解决你的问题,请参考以下文章