-1

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

Python

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

2 回答 2

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 通常会产生非常干净的代码。

于 2012-11-29T16:43:15.460 回答
0

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

试试这个:

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

这使得 this 等价于:

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 中的语法错误。

于 2012-11-29T16:45:55.427 回答