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.

0
陳俊良 16 avril 2018 à 10:45

6 réponses

Meilleure réponse

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(', ').

2
Yngve Moe 16 avril 2018 à 07:51

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)
0
Sreeram TP 16 avril 2018 à 08:00

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"]

1
Sasikumar Murugesan 16 avril 2018 à 07:54

Ajoutez une déclaration simple:

d = [int (c) pour c dans b]

Où b = ['1', '2', ....]

0
MB11 16 avril 2018 à 07:54

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]
>>> 
4
ramganesh 16 avril 2018 à 07:55
a = '128,120,119,118,119,118,120,116,116,120,128,121'

b = [int(l) for l in a.split(',')]
2
Avijit Dasgupta 16 avril 2018 à 07:53