python列表比较错误

时间:2012-11-29 16:37:31

标签: python

我正在比较两个列表,我收到此错误SyntaxError: can't assign to function call

if all(value.lower() in mp3meta for value.lower() in search_key):
  #do stuff

2 个答案:

答案 0 :(得分:2)

SyntaxError: can't assign to function call

是一个非常明确的错误消息

for value.lower() in search_key):

value.lower()是函数调用而不是变量,因此它不能在循环中赋值。

试试这个:

if all(value in mp3meta for value in [value.lower() for value in search_key]) :

这不是最好的方法。 Python通常会导致相当干净的代码。

答案 1 :(得分:0)

您正尝试在赋值表达式中小写字符串。你不需要这样做。

请改为尝试:

if all(value.lower() in mp3meta for value in search_key):

这使得这相当于:

def test(searchkey, mp3meta):
    for value in search_key:
        if value.lower() in mp3meta:
            return True

if test(searchkey, mp3meta):

您尝试循环尝试执行此操作:

for value.lower() in search_key:

这是Python中的语法错误。