web-dev-qa-db-fra.com

Comment convertir une liste de chaînes en un entier en python

Dans mon script python, j'ai:

user = nuke.getInput("Frames Turned On")
userLst = [user]
print userLst

Résultat:

['12,33,223']

Je me demandais comment supprimer le ' de la liste ou le convertir en int.

10
Nick

Utilisez split() pour séparer par une virgule, utilisez int() pour convertir en entier:

user_lst = map(int, user.split(","))
19
Sven Marnach

Il n'y a pas de ' à supprimer dans la liste. Lorsque vous imprimez une liste, puisqu'elle n'a pas de représentation directe sous forme de chaîne, Python vous montre sa repr - une chaîne indiquant sa structure. Vous avez une liste avec un élément, la chaîne 12,33,223; C'est ce que [user] fait.

Vous voulez probablement scinder la chaîne par des virgules, comme ceci:

user_list = user_input.split(',')

Si vous voulez que ceux-ci soient ints, vous pouvez utiliser un compréhension de la liste :

user_list = [int(number) for number in user_input.split(',')]
9
Eevee
[int(s) for s in user.split(",")]

Je ne sais pas pourquoi vous avez défini la variable userLst distincte, qui est une liste à un élément.

1
Daniel Roseman
>>> ast.literal_eval('12,33,223')
(12, 33, 223)
1