gpt4 book ai didi

python - 返回包含在另一个列表中的 Python 列表中的第一项

转载 作者:太空宇宙 更新时间:2023-11-03 14:15:50 25 4
gpt4 key购买 nike

是否有一种 Pythonic 方式返回列表中的第一项,该列表也是另一个列表中的一项?目前我正在使用蛮力和无知来做这件事:

def FindFirstMatch(a, b):
"""
Returns the first element in a for which there is a matching
element in b or None if there is no match
"""

for item in a:
if item in b:
return item
return None

所以 FindFirstMatch(['Fred','Wilma','Barney','Betty'], ['Dino', 'Pebbles', 'Wilma', 'Bambam']) 返回'Wilma' 但我想知道是否有更优雅/高效/Pythonic 的方式。

最佳答案

您可以使用生成器表达式和“next()”函数。示例 -

def FindFirstMatch(list1, list2):
"""
Returns the first element in list "list1" for which there is a matching
element in list "list2" or None if there is no match
"""

setb = set(list2)

return next((item for item in list1 if item in setb),None)

如果 'list2' 中不存在满足条件的项目,这也将返回 None

在上面的函数中,我首先将列表 'list2' 转换为 set ,以便可以在恒定时间内在其中进行搜索(否则在 list 中进行搜索)是一个 O(n) 时间复杂度的操作)。

关于python - 返回包含在另一个列表中的 Python 列表中的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33171073/

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