Python 使用*args列出理解

Python 使用*args列出理解,python,beautifulsoup,iteration,list-comprehension,Python,Beautifulsoup,Iteration,List Comprehension,我想编写一个函数,如果传递的参数中有任何一个在列表中,则使用python的列表理解返回一组字符串。然而,它抛出要求字符串作为左操作数,而不是元组,当尝试使用另一个for循环时,它抛出赋值前引用的局部变量j Ï当然可以使用for循环,但我尝试使用列表理解。有什么提示吗?谢谢。你就快到了: def checkFor(*args): return {a['title'] for a in soup.findAll('a') if 'title' in a.attrs and any(arg i

我想编写一个函数,如果传递的参数中有任何一个在列表中,则使用python的列表理解返回一组字符串。然而,它抛出要求字符串作为左操作数,而不是元组,当尝试使用另一个for循环时,它抛出赋值前引用的局部变量j

Ï当然可以使用for循环,但我尝试使用列表理解。有什么提示吗?谢谢。

你就快到了:

def checkFor(*args):
    return {a['title'] for a in soup.findAll('a') if 'title' in a.attrs and any(arg in a['title'] for arg in args)}

您只是缺少了一个来将元组args展开到其元素中。

啊,太好了!!简洁漂亮!谢谢
def checkFor(*args):
    return {a['title'] for a in soup.findAll('a') if 'title' in a.attrs and any(arg in a['title'] for arg in args)}