0
votes

un moyen plus facile de comparer quatre listes en python

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)


2 commentaires

Max (Len (List1), Len (List2), Len (List3), Len (List4))


impression (max ([[liste1, list2, list3, list4], clé = len))


3 Réponses :


4
votes

Qu'en est-il de l'utilisation maximale:

lists = (list1, list2, list3, list4)
print(max(lists, key=len))


4 commentaires

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


@joumaico merci pour l'avis, j'ai complètement supprimé la deuxième solution



0
votes

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


0 commentaires

0
votes

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: xxx

(après cela, au lieu de faire référence à la liste1, vous devez vous référer à listes ["list1"] à la place)

alors vous pouvez obtenir la liste la plus longue de cette méthode Par exemple: xxx


0 commentaires