Удалить элемент из списка рассылки - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть список URL, например:

www.google.com
www.yahoo.fr
www.stackoverflow.com

Я хочу удалить все URL, содержащие строки «oo» и «flow».

Я сделал функцию Python:

def my_function(param1,param2, 
param3,param4,liste_to_delete,liste2_to_delete):
     status=True
     SQL_CONSTANT = "url not like '%"
     URL_SEP = ";"
     # getFirstList
     broadcastListe1String =""
     listtodelete = liste2_to_delete.split(URL_SEP)
     for url in listtodelete:
         broadcastListe1String = SQL_CONSTANT + url + "%'"
         if(listtodelete.index(url) != len(listtodelete) -1):
             broadcastListe1String = broadcastListe1String + " AND "
     my_broadcast = sc.broadcast(broadcastListe1String)

Затем я сделал:

DataFrame= my_DataFrame.where(my_broadcast.value)

Эта функция началась со второго элемента в моем списке, она не принимает первый элемент в моем списке.

Как я могу изменить свою функцию, удалить также первый элемент в списке?Я надеюсь, что я был ясен Спасибо

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Я думаю, вы можете использовать функцию filter, например:

filter(lambda x: 'oo' not in x and 'flow' not in x, lst)

Например:

lst = ['www.google.com',
       'www.yahoo.fr',
       'www.stackoverflow.com',
       'www.duckduck.com',
       'www.amazon.com',
      ]

filtered_lst = filter(lambda x: 'oo' not in x and 'flow' not in x, lst)
# filtered_lst = ['www.duckduck.com', 'www.amazon.com']

или:

lst = ['www.google.com',
       'www.yahoo.fr',
       'www.stackoverflow.com',
       'www.duckduck.com',
       'www.amazon.com',
      ]

ex_words = ['oo', 'flow']

filterd_lst = filter(lambda x: all(w not in x for w in ex_words), lst)
# filtered_lst = ['www.duckduck.com', 'www.amazon.com']
0 голосов
/ 14 декабря 2018
filter = ['oo', 'flow']
list = ['www.google.com','www.yahoo.fr','www.stackoverflow.com','www.something.com']
for val in list:
    if not any(bad_word in val for bad_word in filter):
        print(val)

Выход

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