Disons que j'ai deux listes.
dictt = {2:'yes',12:'no',33:'no',40:'yes',500:'no'}
3 Réponses :
Cela fonctionne. Comme vous l'avez écrit.
{2: 'yes', 12: 'no', 33: 'no', 40: 'yes', 500: 'no'}
Que diriez-vous de vérifier si le numéro est compris entre l'une des numéros de la liste Remarque:
Sinon, si vous utilisez Python 2, utilisez toujours Y code>.
xrange code> et non
plage code>.
Xrange ne gardera pas tous les nombres dans la mémoire que la gamme fait. Ce sera un problème lorsque la gamme est plus grande. Python3 sera par défaut à Xrange. p> p>
Cela a travaillé sur Python2 et non Python3. Est-ce que tu sais pourquoi?
Aucune erreur, mais la mauvaise sortie. Quand j'ai utilisé python3, je devais écrire y_new = Liste (carte (Lambda x: tuple (carte (int, x.split ('_')))). et puis cela a fonctionné.
Oh, vous essayez de vérifier les données y_new code>. En Python3, il retournera un objet de carte. Il libère des articles sur la demande comme un générateur. Mais votre résultat devrait être généré normalement.
J'ai mis à jour la question. Pourriez-vous jeter un oeil ici? Stackoverflow.com/Questtions/57877954/...
Puisque vous testez une affaire par rapport à l'une des combinaisons de la liste y code>, pourquoi ne pas utiliser
n'importe quel code>?
x = [2,12,33,40,500]
y = ['1_4','9_11','38_50','300_400']
y_new = [(int(a),int(b)) for i in y for a,b in zip(i.split("_"),i.split("_")[1:])]
l = {item:"Yes" if any(a<item<b for a,b in y_new) else "No" for item in x}
print (l)
#{2: 'Yes', 12: 'No', 33: 'No', 40: 'Yes', 500: 'No'}
Cela fonctionnera-t-il avec de grandes listes? Par exemple, la liste X va être d'environ 3 millions de chiffres.
Je vais assumer ces
_ code> dans
y code> est une faute de frappe et doit être
, code>? Peut-être mettre à jour le message pour refléter cela.
Vous devrez modifier les éléments dans
y code> pour être des chaînes, comme dans le premier exemple.
Vient de les changer vers des cordes.
Désolé, qu'en est-il de cela ne fonctionne pas? Cela donne le résultat attendu ...
Je m'assurais bien que la déclaration d'autre était correcte, ou si j'avais besoin d'un elif.
Le
sinon code> est au mauvais endroit. Vous voulez seulement affecter
no code> à la dicte si chaque élément i> de Y échoue pour correspondre, mais vous attribuez «non» si le actuel i> L'élément ne correspond pas.
Je veux affecter un NON si aucun élément de x tombe dans une plage d'un élément de y.
^ IDD. Je pense que le point John essaie de faire, est le fait que vous pouvez attribuer plusieurs fois à la gamme plusieurs fois, avant d'attribuer un oui. Juste un commentaire sur la gamme, vous pouvez le définir comme des tuples au lieu de cordes, pour éliminer la "Split" à chaque fois.
Le code fonctionne aussi longtemps que les deux listes sont triées, malgré les opérations redondantes.