Присвоить оценку слову в списке - PullRequest
1 голос
/ 23 января 2020

У меня есть словарь и список с подсписком со словами:

d={"love":3, "good":2}
l=[["love", "apple", "same"],["good", "GOOD", "year"]]

Если слово в списке отсутствует в словарных ключах, мне нужно присвоить этому слову значение 3 и суммировать его подсписка. В примере результат значений будет:

[6, 3]

Я пробовал этот код:

def scoring():
    score1=[]
    for sublst in l:
        for val in sublst:
            if val.lower() not in d.get(val.lower(), 0):
                score1=sum(3 for val in sublst)
        print(score1)

1 Ответ

1 голос
/ 23 января 2020

Следующее понимание списка даст ожидаемый результат:

>>> [sum(3 if w.lower() not in d else 0 for w in sl) for sl in l]
[6, 3]

Чтобы исправить функцию в вашем вопросе:

def scoring():
    score1=[]
    for sublst in salida_tweets_separado:
        s = 0
        for val in sublst:
            if val.lower() not in valores:
                s += 3
        score1.append(s)
    print(score1)
...