J'ai fait quatre listes qui ont toutes des valeurs et je tiens à dire à l'ordinateur pour imprimer le nom de cette liste qui a la plus grande longueur.
J'ai essayé ce code P>
if len(list1)>(len(list2) and len(list3) and len(list4)):
print(True)
3 Réponses :
Qu'en est-il de l'utilisation maximale:
lists = (list1, list2, list3, list4) print(max(lists, key=len))
Pas sûr qu'il devrait être plus efficace d'utiliser iter plutôt qu'un tuple
@ NJZK2 OH, vous avez probablement raison, du moins dans ce cas (j'ai tendance à utiliser des itérateurs si je n'ai pas besoin de listes)
J'ai une erreur lorsque j'ai essayé d'utiliser votre deuxième réponse: TypeError: ITER attendue au plus 2 arguments, obtenu 4 code>
@joumaico merci pour l'avis, j'ai complètement supprimé la deuxième solution
Je ne sais pas si c'est la solution optimale, mais vous pouvez faire une fonction comme telle:
def check(main,*lists):
for l in lists:
if len(l) > len(main):
return False
return True
Le plus gros problème ici est qu'il est vraiment compliqué d'imprimer des noms de variables dans Python (quelques explications par exemple dans les réponses à Cette question .
La voie la plus simple serait de réécrire les premières affectations à utiliser un dictionnaire: p> (après cela, au lieu de faire référence à la liste1, vous devez vous référer à alors vous pouvez obtenir la liste la plus longue de cette méthode Par exemple: p> listes ["list1"] code> à la place) p>
Max (Len (List1), Len (List2), Len (List3), Len (List4))
impression (max ([[liste1, list2, list3, list4], clé = len)) code>