Les plus longues chaînes de la liste
J'ai été faire une fonction qui renvoie le plus long de la chaîne de valeur à partir d'une liste. Mon code fonctionne quand il n'y a qu'une seule chaîne avec la plupart des caractères. J'ai essayé de faire imprimer tous de la plus longue des chaînes si il n'y avait plus d'un, et je ne tiens pas à être répété. Lorsque je l'exécute, il ne renvoie "bonjour", alors que je le veux retourner "ohman" et "yoloo' également. Je crois que le problème est dans la ligne de if item not list:
mais j'ai tout essayé et ça ne fonctionne pas.
list = ['hi', 'hello', 'hey','ohman', 'yoloo', 'hello']
def length(lists):
a = 0
answer = ''
for item in lists:
x = len(item)
if x > a:
a = x
answer = item
elif x == a:
if item not in list:
answer = answer + ' ' + item
return answer
print length(list)
source d'informationauteur fifiman
Vous devez vous connecter pour publier un commentaire.
Premièrenous pouvons trouver la longueur maximale d'une chaîne dans la liste:
Une petite explication. Ceci est appelé un compréhension de listequi vous permet de comprendre une liste à une autre liste. Le code
[len(s) for s in stringlist]
signifie "générer une liste-comme l'objet, en prenantstringlist
et pour chaques
dans cette liste, donnez-moi au lieu de cela,len(s)
(la longueur de la chaîne).Alors maintenant, nous avons une liste
[2, 5, 3, 5, 5, 5]
. Ensuite, nous appelons le haut-max()
fonction, qui sera de retour5
.Maintenant que vous avez le max de longueur, vous pouvez filtrer la liste d'origine:
Cela ne fonctionne tout simplement comme on le lit en anglais: "Pour chaque chaîne
s
dans stringlist, donnez-moi cette chaînes
silen(s)
est égal àmaxlength
."Enfinsi vous voulez rendre le résultat unique, vous pouvez utiliser le
set()
constuctor pour générer un ensemble unique:(Nous appelons
list()
à son tour dans une liste après avoir retiré les doublons.)Cela se résume à:
Note: Ne pas utiliser une variable nommée
list
il remplace la signification du nom pour lelist
type.Je cautionne Jonathon Reinhart réponse, mais je ne pouvais pas le retenir... Comment à ce sujet?
Il n'est pas nécessaire d'écrire une compréhension de liste, c'est encore plus simple...
Peut-être que vous avez miswrote la ligne
if item not in list:
,et le tiret est faux,modifiés comme ci-dessous:Mais je pense que Jonathon Reinhart ont fourni une meilleure méthode.
J'ai eu le même problème. J'ai trouvé ma solution: