Python - печатать элементы, которых нет в списке - PullRequest
0 голосов
/ 29 января 2019

У меня есть блокнот, который содержит следующее:

banana
apple

Кроме того, у меня есть список.Скажем: example_list = ["banana", "apple", "orange"]

Я хочу напечатать значения в example_list, которых нет в блокноте.Итак, желаемый результат: orange

Это то, что я пытался:

file = open("picturesLog.txt", "r")
fileLines = file.readlines()

example_list = ["banana", "apple", "orange"]

for item in example_list:
    if item in fileLines:
        pass
    else:
        print(item)

Это печать:

banana
apple
orange

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Или str.join:

l= set(map(str.rstrip,fileLines))
print('\n'.join([i for i in list if i not in l]))
0 голосов
/ 29 января 2019
>>> example_list = ["banana", "apple", "orange"]
>>> with open("picturesLog.txt") as f: 
...   seen = set(map(str.strip, f))
...   for fruit in set(example_list) - seen:
...     print(fruit)
... 
orange
0 голосов
/ 29 января 2019

Python читает символ конца строки вместе с каждой строкой.Вы должны будете раздеть это.Что-то вроде fileLines = [x.strip() for x in file.readlines()] должно сработать.

Это было бы первым изменением.Он отвечает на первоначальный вопрос.

Комментарии будут гореть способами улучшения алгоритма.Пусть они горят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...