более быстрый способ сделать grep -v в Python - PullRequest
0 голосов
/ 13 января 2019

у меня есть два списка, a = ["1","3","4","22","2"] и b = ["1","2"]

есть ли способ получить вывод c = ["3","4"] в python, как и

grep -vf b a

в bash, если у вас есть файл

1
3
4
22
2

и b

1
2

Я не могу использовать grep, и я попробовал это, но если список большой, это займет много времени, есть ли способ сделать это быстрее в python?

c = []
d = []

for i in b:
    for j in a:
        if i in j:
                d.append(j)       
c = list(set(a).difference(d))

есть ли способ сделать это быстрее в python?

1 Ответ

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

В одну сторону, используя list-comprehension:

c = [i for i in a if not any(j in b for j in i)]
print (c)
#['3', '4']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...