Verwenden von mehreren NOT IN-Anweisungen mit Python

Ich brauche URLs mit drei spezifischen spezifischen Teilstrings aus einer Schleife. Der folgende Code funktionierte, aber ich bin sicher, es gibt eine elegantere Art, es zu tun:

for node in soup.findAll('loc'): url = node.text.encode("utf-8") if "/store/" not in url and "/cell-phones/" not in url and "/accessories/" not in url: objlist.loc.append(url) else: continue 

Vielen Dank!

  • Für Loop iterate über Potenzen von 2
  • Beschleunige doppelte Schleife in Python
  • Python-Looping und Programm neu starten, wenn true
  • Während Loop Guessing Number Spiel - Python
  • Python-Schleife frühzeitig
  • Running wxPython nach dem Schließen von Tkinter
  • One Solution collect form web for “Verwenden von mehreren NOT IN-Anweisungen mit Python”

     url = node.text.encode("utf-8") sub_strings = ['/store','/cell-phones/','accessories'] if not any(x in url for x in sub_strings): objlist.loc.append(url) else: continute 

    Aus den docs :

    any Rückkehr True, wenn irgendein Element des iterable wahr ist. Wenn das Iterable leer ist, geben Sie False zurück. Gleichwertig:

     def any(iterable): for element in iterable: if element: return True return False 
    Python ist die beste Programmiersprache der Welt.