Code Python court pour dire "Choisissez la valeur la plus basse"?
Ce que je veux dire c'est,
Je suis à la recherche de très peu de code qui renvoie la valeur la plus faible.
par exemple:
a=[1,2,3,4,5,6,7,8,9,10]
b=[1,2,3,4,5,6,7,8]
len(a) = 10
len(b) = 8
if (fill-this-in):
print(lesser-value)
Et j'ai oublié d'ajouter que si b est inférieur à un, je veux b retourné - pas len(b) - la variable b.
source d'informationauteur Devoted | 2009-01-11
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas très clair sur ce que vous voulez, de sorte que certaines des solutions de rechange. Étant donné les deux listes ci-dessous:
Pour imprimer le plus court de la liste, vous pouvez le faire..
Pour obtenir la longueur la plus courte comme un nombre, vous pouvez soit
min
lalen()
de chaque liste, ou nelen(min())
(les deux sont identiques, choisissez jamais vous trouvez la plus lisible)..Pour imprimer la valeur la plus basse dans la liste, vous pouvez fournir la liste comme un argument unique de
min()
Enfin, une autre possibilité, la liste qui a la plus faible des valeurs au total:
Pour imprimer la liste réelle avec la plus haute
sum()
vous pouvez soit utiliser l'opérateur ternaire, comme....bien que je n'ai jamais vraiment aimé (ou d'utilisation), au lieu d'utiliser la plus légère, de régulier, if/else..
Si la longueur de la liste est ce qui le rend plus faible (pas ses valeurs), alors vous voulez vraiment:
qui n'est d'ailleurs équivalent à
dans l'exemple donné.
min()
doit accomplir ce que vous avez besoinheads up,
min(a, b, key=len)
ne fonctionne que dans python 2.5 et je pense que.(il ne fonctionne pas sur mon macbook avec python 2.4, mais mon serveur linux avec 2.5 est très bien)
Est le suivant ce que vous voulez?
Alternativement, si vous souhaitez utiliser l'opérateur ternaire comme @Andrew G. Johnson:
PS. Rappelez-vous que Python ne pas utiliser des accolades pour ses blocs, et que son opérateur ternaire est différent de C-comme les langues.
Il semble que cette réponse est peut-être maintenant de la date. J'ai juste eu cette même question et trouvé cette réponse, mais n'obtiennent pas les résultats que j'attendais. S'avère Min n'est pas automatiquement renvoie la plus courte des deux listes (2.7). Pour obtenir que vous devez utiliser la touche '' argument (introduit dans la version 2.5)(italiques ajoutés):
Donc dans cet exemple, il semble bien que de travail (et encore en 2.7), il ne fait parce que la liste d'entiers est même. Toutefois, si ces deux non-listes ordonnées alors:
serait de retour la liste avec le plus bas première entier.
Pour être sûr d'obtenir la plus courte des deux listes, utilisez:
Je ne connais pas Python, mais pour quelque chose comme ce que j'avais utiliser un opérateur ternaire.
Une chose à noter à ce sujet que si elles sont égales, il permet d'imprimer la longueur(b)