-1

2 つのリストを比較していますが、このエラーが発生していますSyntaxError: can't assign to function call

パイソン

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 に答える