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!

  • Python: Wie bekomme ich die Eingabe von der Konsole, während eine Endlosschleife läuft?
  • Python mehrere Schleifen zur gleichen Zeit
  • Wie läuft man eine unendliche Schleife in pygtk?
  • Wie man über Hunderte von Bildern in Qulatrics - Hilfe benötigt, um Code zu implementieren
  • Zählen (und Schreiben) von Wortfrequenzen für jede Zeile innerhalb der Textdatei
  • Abflachen einer sehr verschachtelten Schleife
  • 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.