Ici, j'ai une chaîne qui ressemble à ça '128,120,119,118,119,118,120,116,116,120,128,121'
Je veux que ce soit une liste comme celle-ci [128,120,119,118,119,118,120,116,116,120,128,121]
J'ai donc déjà essayé une commande 'list' en python pour en faire une liste
Cependant, le résultat ressemble à ça ['1', '2', '8', ',', '1', '2', '0', ',', '1', '1', '9', ',', '1', '1', '8', ',', '1', '1', '9', ',', '1', '1', '8', ',', '1', '2', '0', ',', '1', '1', '6', ',', '1', '1', '6', ',', '1', '2', '0', ',', '1', '2', '8', ',', '1', '2', '1']
.
Bien que le type des données de chaîne soit une liste, le point de coupure est incorrect.
6 réponses
La fonction str.split()
vous aidera ici.
nums = '128,120,119,118,119,118,120,116,116,120,128,121'
num_list = nums.split(',')
L'argument est de savoir par quel caractère vous voulez vous séparer.
PS. Si vous voulez diviser par plusieurs caractères, disons dans une chaîne où les éléments sont séparés par une virgule et un espace, comme nums = '128, 120, 119, 118, 119, 118, 120, 116, 116, 120, 128, 121'
, vous pouvez utiliser nums.split(', ')
.
Vous pouvez diviser sur la base de ,
pour obtenir une liste selon vos besoins.
Mais gardez à l'esprit que cette liste est une liste de chaînes, c'est-à-dire que le nombre 128 sera la chaîne '128'.
Pour obtenir une liste entière, vous devez convertir cette liste de chaînes en liste entière.
Vous pouvez le faire comme indiqué ci-dessous.
num_string = '128,120,119,118,119,118,120,116,116,120,128,121'
string_list = num_string.split(',')
int_list = [int(x) for x in string_list]
print(int_list)
Vous pouvez utiliser la méthode de fractionnement pour cela.
my_string = "128,120,119,118,119,118,120,116,116,120,128,121"
my_list = my_string.split(",")
print my_list
Production:
["128", "120", "119", "118", "119", "118", "120", "116", "116", "120", "128", "121"]
Ajoutez une déclaration simple:
d = [int (c) pour c dans b]
Où b = ['1', '2', ....]
Utilisez la méthode Split.
>>> s = '128,120,119,118,119,118,120,116,116,120,128,121'
>>> l = s.split(',') # Split with ','
>>> [int(i) for i in l] # Change str to int type, *Used list comprehensions
[128, 120, 119, 118, 119, 118, 120, 116, 116, 120, 128, 121]
>>>
a = '128,120,119,118,119,118,120,116,116,120,128,121'
b = [int(l) for l in a.split(',')]
Questions connexes
Questions liées
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.