web-dev-qa-db-fra.com

Comment convertir une chaîne délimitée par des virgules en Python?

Étant donné une chaîne qui est une séquence de plusieurs valeurs séparées par une virgule:

mStr = 'A,B,C,D,E' 

Comment convertir la chaîne en liste?

mList = ['A', 'B', 'C', 'D', 'E']
114
O.rka

Vous pouvez utiliser la méthode str.split.

>>> my_string = 'A,B,C,D,E'
>>> my_list = my_string.split(",")
>>> print my_list
['A', 'B', 'C', 'D', 'E']

Si vous voulez le convertir en un tuple, il suffit de

>>> print Tuple(my_list)
('A', 'B', 'C', 'D', 'E')

Si vous souhaitez ajouter à une liste, essayez ceci:

>>> my_list.append('F')
>>> print my_list
['A', 'B', 'C', 'D', 'E', 'F']
191
Matt Williamson

Dans le cas des entiers inclus dans la chaîne, si vous souhaitez éviter de les attribuer à int individuellement, vous pouvez effectuer les opérations suivantes:

mList = [int(e) if e.isdigit() else e for e in mStr.split(',')]

Il s'appelle list comprehension , et il est basé sur la notation du constructeur d'ensembles.

ex: 

>>> mStr = "1,A,B,3,4"
>>> mList = [int(e) if e.isdigit() else e for e in mStr.split(',')]
>>> mList
>>> [1,'A','B',3,4]
10
>>> some_string='A,B,C,D,E'
>>> new_Tuple= Tuple(some_string.split(','))
>>> new_Tuple
('A', 'B', 'C', 'D', 'E')
4
Raymond Hettinger

Vous pouvez utiliser cette fonction pour convertir des chaînes de caractères uniques délimitées par des virgules en listes.

def stringtolist(x):
    mylist=[]
    for i in range(0,len(x),2):
        mylist.append(x[i])
    return mylist
0
Hemang Jalali