hi je veux installer une sorte de comparateur réglable où un élément d'une liste
4 Réponses :
semble que vous avez besoin de moyen programmatique d'appeler des opérateurs de comparaison, opérateur code>
module fera le travail. Soit construire la liste des fonctions de l'opérateur ou établir des panneaux indiquant la mappage de l'opérateur via dict code> p>
for i in range(len(a)): eval(str(a[i])+b[i]+str(c[i]))
au lieu de symboles de comparaison, utilisez la fonction de opérateurs a >. Peut-être peut-être que cela puisse aider! p>
C'est certainement la meilleure façon de le faire. Il pourrait également fonctionner avec l'original ['<', '>', '<>', '<'] code> comme entrée, avec un simple mappage
{'<<': lt, ' > ': GT,' <> ': ne,' = ': eq} code>
Merci. Mis à jour ma solution.
Utilisation de EVAL CODE> Même dans une situation, il est instable, mais s'il ne considère que votre cas, cela fonctionne comme prévu et une meilleure solution est
symbole code>
Je suis vraiment surpris que vous ayez suggéré eval code> ici plutôt que de mapper les opérations au module code> code> ou suggérant
symbole code> ou ... Littéralement quelque chose que éventuellement
@ROGANJOSH Je remarque que cela aussi, j'ai juste besoin de temps pour savoir ce que j'ai utilisé avant
Ok, alors vous nous demandez de l'écrire pour vous? Vous n'avez pas montré aucune tentative de mise en œuvre.
Et vous avez des crochets non équilibrés ...
Avez-vous suivi un coup d'oeil à
EVAL CODE>
?@ Scratch'n'purr Vous avez-vous suivi un coup d'œil à eval vraiment est dangereux ?
@ROGANJOSH Je comprends les risques d'évaluation, mais ses listes n'incluent pas de valeurs ou de variables dangereuses.
@ Scratch'n'purr sûr, mais a) Cela pourrait être un exemple de contreveille, nous ne savons pas où ces valeurs proviennent réellement dans le programme réel et b) Ce message peut arriver dans une recherche de toute personne résolvant tout problème. dans le futur.