gpt4 book ai didi

list - Python : search through list of tuples

转载 作者:行者123 更新时间:2023-12-04 13:49:26 25 4
gpt4 key购买 nike

我有一个元组列表,例如

>>> l = [ ("a",1), ("b",2), ("c",3) ]

我可以假设元素是唯一的。现在,我想获取该元组的第一个元素,其第二个元素为 2(在此示例中为 'b')。第一次尝试是:
>>> [ x for x, y in l if y == 2 ][0]
'b'

考虑到这会创建仅索引第0个元素的第二个列表,这似乎有些麻烦。这样做的另一种方法是反转给定列表 l中的所有元组并构建一个字典,然后对该字典进行索引:
>>> dict([ (y, x) for x, y in l ])[2]
'b'

考虑到反转列表和创建字典所涉及的数据改组的数量,这似乎更加尴尬。最后,最冗长但也许最快的方法是简单地遍历列表:
>>> def get(l) :
... for x, y in l :
... if y == 2 :
... return x
... assert not "Should not happen."
...
>>> get(l)
'b'

我的问题是:是否有更好和更多的Python方式搜索此列表?

最佳答案

试试这个:

next(x for x in l if x[1] == 2)[0]

使用 next()的优势在于,我们仅迭代查找所需内容所需的最小元素数量,因此,不,这不等同于使用列表推导创建一个完整的新列表,然后返回第一个元素。

关于list - Python : search through list of tuples,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com