Je veux pouvoir vérifier si une liste contient 2 éléments d'une autre liste (qui au total en a 3)
par exemple:
list1 = ["a", "b", "c"]
list2 = ["a", "f", "g", "b"]
if #list2 contains any 2 elements of list1:
print("yes, list 2 contains 2 elements of list 1")
else:
print("no, list 2 does not contain 2 elements of list 1")
7 Réponses :
Vous pourriez écrire une fonction pour vérifier les éléments en commun entre les deux listes, et après vérifier si la quantité de ces éléments est égale à 2.
Par exemple:
def intersection(list1, list2):
lst3 = [value for value in list1 if value in list2]
return lst3
list1 = ["a", "b", "c"]
list2 = ["a", "f", "g", "b"]
if len(intersection(list1, list2) == 2):
print("yes, list 2 contains 2 elements of list 1")
else:
print("no, list 2 does not contain 2 elements of list 1")
def my_func(list1, list2):
count = 0
for i in list1:
for j in list2:
if(i == j) : count += 1
print(count)
if(count >= 2) : return True
else: return False
list1 = ["a", "b", "c"]
list2 = ["a", "f", "g", "b"]
if my_func(list1, list2):#list2 contains any 2 elements of list1:
print("yes, list 2 contains 2 elements of list 1")
else:
print("no, list 2 does not contain 2 elements of list 1")
J'utiliserais une description similaire à celle décrite dans la question suivante, mais cette fois vérifier la longueur de l'intersection des ensembles: Comment trouver l'intersection de liste?
list1 = ["a", "b", "c"]
list2 = ["a", "f", "g", "b"]
if len(list(set(a) & set(b))) == 2:
print("yes, list 2 contains 2 elements of list 1")
else:
print("no, list 2 does not contain 2 elements of list 1")
Vous pouvez utiliser itertools.combinations () pour obtenir tous les ensembles de deux éléments de list2 et voir s'ils sont des sous-ensembles de list1 :
import itertools
if any(set(comb).issubset(set(list1)) for comb in itertools.combinations(list2, 2)):
print("yes, ...")
...
count = 0
for ele in list2:
if ele in list1:
count += 1
if count == 2:
print ("yes, list 2 contains 2 elements of list 1")
else:
print ("no, list 2 does not contain 2 elements of list 1")
list1 = ["a", "b", "c"]
list2 = ["a", "f", "g", "b"]
if len(set(list1).intersection(set(list2))) == 2:
print("yes, list 2 contains 2 elements of list 1")
else:
print("no, list 2 does not contain 2 elements of list 1")
The .intersection method takes two sets and finds what is common between them. If what is common between them is 2 elements, then you have what you want.
Cela fonctionne:
list1 = ["a", "b", "c"]
list2 = ["a", "f", "g", "b"]
val = 0
for idx in list1:
for idx2 in list2:
if idx == idx2:
val += 1
if val == 2:
print("yes, list 2 contains 2 elements of list 1")
else:
print("no, list 2 does not contain 2 elements of list 1")
Qu'avez-vous essayé pour la
# list2 contient 2 éléments quelconques de la partie list1?