Найти элемент из одного списка и сравнить его с элементом в другом списке - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь сравнить содержимое двух списков -

Один список содержит имя файла, например

filenamestring = ['a', 'b']

Другой список содержит несколько слов и их оценки, например

outlist = [('c', 46), ('d',
40), ('e', 37), ('f', 35),('a', 40),('b', 37),('c', 1), ('d',
2), ('e', 3), ('f', 4)]

Я пытаюсь найти подходящие слова из списка 2 и, если они совпадают правильно, добавить оценку со значением 200

Попробовал приведенный ниже код, но ничего не произошло-

for letter, number in outlist:
    if word in filenamestring == letter in outlist:
        output[letter] = number + 200

    else:
        output[letter] += number

Вывод:

output =  [('c', 47), ('d',42), ('e', 40), ('f', 39),('a', 240),('b', 237)]

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Рабочий код:

    filenamestring = ["b", "a"]

    # The other list contains multiple words and their scores i.e

    outlist = [('c', 46), ('d', 40), ('e', 37), ('f', 35),('a', 40),('b', 37)]

    # I'm trying to find matching words from the 2 list and if matched correctly add the score with a value of 200

    # Tried the code below but nothing happened-
    i = 0
    for letter, number in outlist:

        print(letter + "= " + str(number))

        for word in filenamestring:
            if word  == letter :
                outlist[i] =(letter, number + 20000000)
                break
            else:
                outlist[i] = (letter, number)
        i= i+1

    print(outlist)
0 голосов
/ 23 октября 2018

Вы можете использовать список пониманий:

 output = [(i[0], i[1]+200) if i[0] in filenamestring else (i[0],i[1]) for i in outlist]
0 голосов
/ 23 октября 2018
for letter, number in outlist:
if letter in filenamestring: # directly check if letter is in the filenamestring
    output[letter] = number + 200

else:
    output[letter] += number
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...