Python &引用;SyntaxError:can';t分配给字面意义的“;for循环的错误

Python &引用;SyntaxError:can';t分配给字面意义的“;for循环的错误,python,python-3.x,syntax,Python,Python 3.x,Syntax,我正在尝试运行教授给我的一些代码,这些代码应该可以在列表中找到一个项目,并计算出现的次数。但当我尝试运行它时,会出现一个错误,上面写着“SyntaxError:can't assign to literal”。代码如下: def function(list_of_coins): count=0 for i in list_of_coins: if(i == 'Dime'): count = count+1 return(count)

我正在尝试运行教授给我的一些代码,这些代码应该可以在列表中找到一个项目,并计算出现的次数。但当我尝试运行它时,会出现一个错误,上面写着“SyntaxError:can't assign to literal”。代码如下:

def function(list_of_coins):
    count=0
    for i in list_of_coins:
        if(i == 'Dime'):
            count = count+1
    return(count)


list_of_coins = ["Penny","Dime","Dime","Nickel","Dime","Penny","Dime"]

print("count: ",function(list_of_coins))


non_dime_list = [1 for 1 in list_of_coins if 1!="Dime"]
print(non_dime_list)

您在这里有一个错误
[1代表硬币列表中的1,如果1!=“Dime”]

它应该是
[i为i,如果i!=“Dime”]

你说的地方

non_dime_list = [1 for 1 in list_of_coins if 1!="Dime"]
您将1视为变量,但变量不能以数字开头。你必须把它换成

non_dime_list = [i for i in list_of_coins if i!="Dime"]
我还建议您稍微重写代码,以获得相关的函数名,并删除多余的括号

def count_dimes(lst):
    count = 0
    for i in lst:
        if i == 'Dime':
            count += 1
    return count


list_of_coins = ["Penny", "Dime", "Dime", "Nickel", "Dime", "Penny", "Dime"]
print("count: ", count_dimes(list_of_coins))
non_dime_list = [i for i in list_of_coins if i != "Dime"]
print(non_dime_list)