1
votes

Python - Liste des nombres sans guillemets

J'ai donc un fichier texte qui contient "Nom", "Nom" "Âge" avec plusieurs lignes de données.

J'ai pu extraire le "Âge" du fichier et le mettre à partir de du plus vieux au plus jeune. Le seul problème maintenant est que je veux afficher toutes les personnes de la liste mais dans l'ordre du plus vieux au plus jeune tout en montrant leur nom et prénom.

J'ai aussi des variables séparées pour chacune des lignes. Par exemple Name1 = "John", "Doe", "16". Name2 = "Doe", "John", "16". Je sais que c'est une mauvaise façon de le faire mais je ne sais pas quoi faire.

et Age = [24,14,16] Sans les questions

J'ai pensé à

if Age[2] in Name1[2]:
     #John Doe is 16

Mais le problème est quand j'ajoute les points extraits du fichier à une liste qu'il montre comme ceci [14,25,25 ] au lieu de ["14", "25", "25"] .

Depuis son "25" sur la variable et 25 sur la liste d'âge.

C'est la première fois que je poste ici, alors je suis désolé si ma mise en forme est incorrecte ou si je n'ai aucun sens sur mon message. N'hésitez pas à m'envoyer un message, je serais plus qu'heureux de vous expliquer davantage.

Merci d'avoir lu, j'espère que vous pourrez aider. Aussi, si vous avez des solutions pour savoir quoi faire en ce qui concerne mon codage en dur du Nom1, faites-le moi savoir aussi.


4 commentaires

Pouvez-vous fournir un échantillon de données de votre fichier?


Bien sûr, c'est mon fichier texte: Claire, Thumb, 2 Bobby, Robert, 1 Laso, Bob, 5


Bienvenue à SO ..


Merci, longtemps caché


3 Réponses :


0
votes

Une solution simple consiste à analyser Age [2] en chaîne.

str(Age[2]) in Name1

Puisque Name1 = "John", "Doe", "16" retournera un tuple. L'opérateur "in" peut donc être utilisé avec Name1 sans spécifier l'index.


1 commentaires

Merci d'avoir répondu print (str (Age [0])) J'ai imprimé ceci et il a montré le nombre sans guillemets, donc quand j'ai essayé if str (Age [0]) dans name1List: < / code> il a dit False.



0
votes

Vous pouvez créer un cadre de données à partir de votre fichier texte avec les colonnes "Nom", "Nom", "Âge".

Ensuite, utilisez data.sort_values ​​(by = ['Age'], ascending = False) des pandas qui renverront automatiquement le résultat requis.


0 commentaires

2
votes

Vous pouvez utiliser une liste de dictés (un dict pour un utilisateur):

newlist = sorted(users, key=lambda k: k['age']) 

pour classer votre liste de dictés par âge, vous pouvez utiliser:

users = [{'name':'john','surname':'doe','age':16}, ...{...}] 


0 commentaires