J'ai le code suivant: IT imprime: p> Après avoir ajouté quelques journaux supplémentaires, il semble que le premier élément de Comment puis-je modifier ce code afin qu'il n'imprimera que le dernier match? Donc, je veux seulement que la sortie p code> est comparé au premier élément de
q code>, puis premier élément de
p code> avec second élément de
q code>, premier Article de
p code> avec un troisième élément de
q code> etc. p>
a code> une fois (en raison de la comparaison du premier élément de
p code> et du second élément dans
q code> dans ce cas) p> p>
3 Réponses :
Pourquoi ne pas simplement utiliser un ensemble pour trouver des caractères communs entre les deux listes la sortie sera Ou si vous ne pouvez pas utiliser un ensemble, collectez tous les matchs dans une liste et imprimez le dernier élément p> la sortie sera {'A'} code> p> p>
("A" ) code> p> p>
Pouvez-vous utiliser un ensemble avec intersection avec p (liste des chaînes) et q (liste des dicts et une clé d'un dict correspond à une chaîne de p)?
Oui, un ensemble de p et un ensemble de liste de clés de la dict @dencowboy afin Set (p) code> et
SET (DCT) code>
J'ai essayé: Imprimer (Set (A) .Intersection (Set (B ['Valeur']))) Mais il est retourné: TypeError: Les indices de liste doivent être des entiers ou des tranches, pas STR
Qu'est-ce que a code> et
B code> pouvez-vous être plus clair à ce sujet, cela semble également non liée à la question dans la main @Dencowboy
Désolé, je veux dire comme p et q. p est juste comme dans la question originale et q est en fait une liste de dictts comme [{'valeur': 'a'}, {'valeur': 's'}, {'valeur': 't'}]
Oui, le deuxième ensemble sera de la liste [élément de V dans q pour l'élément en v.values ()] code>, où vous collectez toutes les valeurs à partir de
q code> dans une liste et en faites un ensemble @DenCowboy et vous convertissez cette liste en un ensemble et de la comparer à
SET (q) code>
Laissez-nous Continuez cette discussion en chat .
Si vous ne pouvez pas vous permettre de tourner p code> et
q code> en ensembles d'abord car ils sont exorcitanément importants, vous pouvez ajouter les valeurs déjà assorties à un ensemble comme vous Allez vérifier l'inclusion:
p = ['a','b','c','d']
q = ['a','a','x','y','z']
seen = set([])
for a, b in itertools.product(p, q):
if a == b and b not in seen:
print(b)
seen.add(b)
Pour ce faire, je voudrais simplement inverser les deux Liste code> S:
a
Êtes-vous empêché de créer et d'accumuler des valeurs dans une liste, puis de les convertir en un ensemble?
Quel est votre code censé faire? I>
Trouvez-vous des caractères communs entre les deux listes?
Je suis d'accord avec @ Juanpa.arrivillaga qu'il n'a aucun sens de donner des solutions sans connaître votre intention.
[A pour A, B dans IteroTools.Product (P, Q) Si A == B] [- 1] code>