J'essaie de trouver les différences uniques entre 5 listes différentes.
J'ai vu plusieurs exemples de la manière de trouver des différences entre deux listes, mais n'ont pas été en mesure d'appliquer ceci à plusieurs listes. P>
Il a été facile de trouver les similitudes entre 5 listes. P>
Exemple: p> Cependant, je veux comprendre comment déterminer les caractéristiques uniques Pour chaque ensemble. p> Est-ce que quelqu'un sait faire cela? p> p>
4 Réponses :
Cela pourrait-il aider? Je suppose qu'une liste de listes illustrent cet exemple. Mais vous pouvez modifier la source de données pour répondre à vos besoins modifier (en fonction de quelques commentaires utiles): p>
Compte [I] == 1 code> doit être
Compte [x] == 1 code>
En outre, il n'y a pas besoin de map (défini, lists_of_lists) code>,
chaîne.from_itéable (list_of_lists) code> fonctionne exactement identique.
Ouais, mais s'il y a des doublons dans la liste, cela les élimine. Juste une petite optimisation. :)
@karthikr qui n'est pas une optimisation
+1 Mais je pense que OP veut juste le résultat comme [k pour k, c en compte.items () si c == 1] code>
@jamylak dans la question, op, explique "Comment déterminer les fonctionnalités uniques pour chaque ensemble". , alors j'ai décidé de le garder comme des listes séparées.
@karthikr mais l'exemple de code de OP montre clairement le contraire. Aussi carte (définir code> ne fera que cela plus lent, car vous devez itération à travers les éléments potentiellement deux fois maintenant
Merci pour les suggestions, allez-y l'essayer aujourd'hui et revenez.
Bien que cela soit élégant, il pourrait ne pas être facile de collecter les valeurs uniques correspondant à la liste qu'ils ont eu lieu, alors que dans la réponse acceptée, c'est possible. L'inconvénient: puisque la réponse acceptée utilise le jeu, la commande est perdue.
Comment ça va? Disons que nous avons des listes d'entrée [1, 2, 3, 4] code>,
[3, 4, 5, 6] code> et
[3, 4, 7, 8] code>. Nous voudrions sortir
[1, 2] code> dans la première liste,
[5, 6] code> dans la deuxième liste et
[7, 8] de la troisième liste.
from itertools import chain
A_1 = [1, 2, 3, 4]
A_2 = [3, 4, 5, 6]
A_3 = [3, 4, 7, 8]
# Collect the input lists for use with chain below
all_lists = [A_1, A_2, A_3]
for A in (A_1, A_2, A_3):
# Combine all the lists into one
super_list = list(chain(*all_lists))
# Remove the items from the list under consideration
for x in A:
super_list.remove(x)
# Get the unique items remaining in the combined list
super_set = set(super_list)
# Compute the unique items in this list and print them
uniques = set(A) - super_set
print(sorted(uniques))
Un autre étudiant diplômé avec lequel je travaille a utilisé ce code et ça a fonctionné aussi bien! Merci pour la suggestion
Pouvez-vous aider à répondre à une relation associée Cette question ?
OK, je suis débutant à Python et je n'ai pas pu suivre les suggestions ci-dessus très bien, mais a été capable de trouver mon problème à l'aide du code suivant, en gros, juste un tas de comparaisons de paire de paires.
x1 = [x for x in hr1 if x not in hr2] x2 = [x for x in x1 if x not in hr4] x3 = [x for x in x2 if x not in hr8] x4 = [x for x in x3 if x not in hr24] len(x4)
A_1 = [1, 2, 3, 4] A_2 = [3, 4, 5, 6] A_3 = [3, 4, 7, 8] all_lists = [A_1, A_2, A_3] f(all_lists) [[1, 2], [5, 6], [7, 8]]
Surpris cela n'a jamais été demandé avant
Ce Cette réponse devrait donc fonctionner, mais pour une raison quelconque, elle échoue.