J'essaie d'apprendre python en développant des outils CLI pour mon travail.Vérifiez si un élément de liste Python contient une chaîne dans une autre liste
J'ai deux listes de domaines, l'un «dédupliqué» contient les domaines complets que j'ai chargés à partir d'un fichier texte, l'autre «poison» contient certaines chaînes correspondant partiellement à certains domaines.
deduplicated = ['facebook.com','google.com','en.wikipedia.org','youtube.com','it.wikipedia.org']
poison = ['youtube','wikipedia']
Je suis en train de faire correspondre la liste des chaînes afin d'obtenir deux nouvelles listes, une « propres » (les domaines qui ne sont pas couvertes par la liste de poison) « poison » et un « sale » (qui ont été partiellement appariés »)
C'est ma tentative, mais cela ne fonctionne pas ...
clean = []
dirty = []
for item in deduplicated:
if (any(poison in word for word in deduplicated)):
print ("useless domain %s" % item)
dirty.append(item)
else:
print ("nice domain %s" % item)
clean.append(item)
Mise à jour.
Modifié le code car le formatage était moche.
Pour référence ultérieure, l'erreur que je recevais était:
TypeError: 'in ' requires string as left operand, not list
Quelle est votre sortie et quel est votre sortie désirée? – mikeb
@mikeb J'ai mis à jour la question avec l'erreur que je recevais. –