J'ai deux listes: Je veux vous assurer que la liste1 contient au moins tous les éléments de la liste2 (la commande n'a pas d'importance). Sinon, je veux soulever une exception. P> set = set(list2).difference(List1)
if set != "":
raise Exception('Missing required columns',set)
5 Réponses :
Vous pouvez essayer:
>>> if not set(l1) == set(l2):
... raise Exception('Missing required columns',set)
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
Exception: ('Missing required columns', <class 'set'>)
>>>
Vous pouvez utiliser ou tout code> fonction: toute fonction code>: p>
Il y a 2 problèmes avec la logique.
Vous attribuez à la section code> correspondant au résultat de Vous comparez un Peut-être essayer: p> set.difefence code>. Ceci est probablement indésirable. P> li>
définir code> (comme retourné par set.difefence code>) sur un str code> ( "" / code>) de sorte que la logique augmente toujours l'exception. P> li>
ol>
Essayez comme ceci peut-être:
if not (set(list2) <= set(List1)):
raise Exception('Missing required columns',set)
Vous vérifiez le mauvais type de données. set.difefence () code> retourne un définir code>, pas un str code>. Donc, dans votre relevé si code>, vous devez vérifier un ensemble vide ( SET () code>) ou vérifier la longueur avec len (défini) code>. Une chose, cependant, évitez de nommer des variables / fonction avec des noms déjà existants dans la portée globale (telle que l'ensemble intégré code>). Cela peut être problématique. P>