1
votes

Comment convertir une chaîne d'un tuple en entier?

Je récupère les statistiques qui sont placées dans une liste que je souhaite convertir ultérieurement en dictionnaire. La liste ressemble à ceci:

 my_list = [('Appearances   ', '      32'),('Clean sheets   ', '      6'), etc,etc]

Comment convertir les entiers du tuple en entiers?


0 commentaires

4 Réponses :


2
votes
my_list = map(lambda x: [x[0], int(x[1].strip())], my_list)
Given an input list my_list of OP's specifications, return the resulting list with the second value stripped of whitespace and turned into an integer.

2 commentaires

Quand j'imprime ma_liste, j'obtiens simplement , savez-vous peut-être pourquoi?


Cela est dû au fait que la carte de fonctions inclut un itérateur, pas une liste elle-même. Pour l'imprimer ainsi, il vous faudra d'abord le convertir (par exemple par list (map (...)) .



2
votes

La méthode la plus simple et généralement applicable serait de convertir tout élément numérique (les chaînes ont un test pour cela) en un entier. Le petit truc, c'est que la chaîne numérique ne peut pas contenir d'espaces pour vérifier si elle est numérique (mais elle peut les convertir en entier).

Donc: p >

>>> listoftuples = [('Appearances   ', '      32'), ('Clean sheets   ', '      6')]
>>> [tuple(int(item) if item.strip().isnumeric() else item for item in group) for group in listoftuples]
>>> [('Appearances   ', 32), ('Clean sheets   ', 6)]

L'avantage de cette méthode est qu'elle n'est pas spécifique à votre saisie. Cela fonctionne bien si l'entier est le premier, ou si les tuples sont de longueurs différentes, etc.


1 commentaires

Tu paries. Vous pouvez changer "else item" en "else item.strip ()" si vous ne voulez pas d'espaces supplémentaires dans vos autres éléments, mais je l'ai laissé de côté car vous ne l'avez pas spécifié.



1
votes

Vous pouvez utiliser la compréhension de liste:

    new_list = [(x[0], int(x[1].strip())) for x in my_list]


0 commentaires

1
votes

Le code suivant convertira les chaînes en entiers. Et, il créera également un dictionnaire en utilisant la liste des tuples.

my_list = [
     ('Appearances   ', '      32'),
     ('Clean sheets   ', '      6')
]
d = dict()
for key, value in my_list:
    d[key.strip()] = int(value.strip())
print(d)

La solution ci-dessus suppose que chacun des tuple de la liste aura deux éléments key & valeur . Tous les premiers éléments (clés) des tuples sont uniques. Et les seconds éléments (valeurs) sont des chaînes qui peuvent être converties en entiers.


0 commentaires