8
votes

Convertir une chaîne à la liste en python

J'essaie de créer une liste d'arguments que je reçois dans une URL.

Par exemple, j'ai: xxx

maintenant quand je le reçois dans la demande vient comme une chaîne. Je veux faire une liste de "0,1,2" [0,1,2]


2 commentaires

enlevé la balise Django comme ce n'est pas vraiment une question de Django


Mais Django peut avoir un soutien pour analyse des URL pouvant être intéressants.


7 Réponses :


2
votes

aller de "0,1,2" à ['0', '1', "2 '] son ​​juste " 0,1,2 ".split (", ")

Donc, si vous l'avez dans une variable utilisateurs , alors users.split (",") vous donnera la liste.

Si vous en avez besoin en tant qu'OBT au lieu de cordes, ce serait [int (x) pour x dans les utilisateurs.split (',')] . .


0 commentaires

2
votes

Pour convertir la chaîne en une liste, utilisez Split .

Pour convertir la liste des chaînes à une liste d'entiers, utilisez une compréhension de liste avec int .

Alors, vous le mettant tous ensemble, il ressemble à quelque chose comme ceci: xxx

résultats: xxx


1 commentaires

Je devine juste, car je n'ai pas utilisé le cadre, mais j'imagine que Django ne le ferait pas analyser l'ensemble de la ficelle de la requête lui-même, non?



31
votes

Utilisez la méthode divisée . Exemple: xxx

ou même, xxx


0 commentaires

3
votes
x=map(int,'0,1,2'.split(','))

0 commentaires

0
votes

Vous pouvez utiliser le code suivant:

s = 'user.com/?users=0,1,2'
s.rpartition('?users=')[2].split(',')


0 commentaires

6
votes

Cette question a été étiquetée à l'origine Django, donc je vais procéder à cela à l'esprit.

à l'intérieur de votre fonction de vue, la requête est un attribut GET qui est une instance d'un QueryDict . Si vous savez toujours que vous allez obtenir une liste des entiers séparés par des virgules pour la clé "utilisateurs", vous pouvez faire quelque chose comme celui-ci à la fonction de vue: xxx

que Vous donnera une liste de chaînes ou une liste vide si les "utilisateurs" n'étaient pas fournis dans GET. Si vous vouliez une liste d'entiers, vous pouvez le traiter plus loin avec une compréhension de la liste: xxx


0 commentaires

-2
votes

Vous avez Eval Pour convertir la chaîne en "code réel":

Exemple: P>

>>> l = u"[('0','None'),('2','Taxable Goods'),('4','Shipping')]"
>>> type(l)
<type 'unicode'>

>>> t = eval(l)
>>> type(t)
<type 'list'>


1 commentaires

Il a définitivement demandé quelque chose d'autre!