Ошибка «SyntaxError: невозможно присвоить литералу» с циклом for - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь запустить какой-то код, который дал мне мой профессор, который должен найти элемент в списке и подсчитать количество вхождений. Я получаю сообщение об ошибке «SyntaxError: невозможно присвоить литералу», хотя я пытаюсь запустить его. Вот код:

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)

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

У вас есть ошибка здесь [1 for 1 in list_of_coins if 1!="Dime"]

Это должно быть [i for i in list_of_coins if i!="Dime"]

0 голосов
/ 15 апреля 2020

Где вы говорите

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...