Chaîne Python de la compréhension de la liste
Je suis en train d'essayer d'obtenir cette chaîne comme un résultat:
"&markers=97,64&markers=45,84"
Du code Python ci-dessous:
markers = [(97,64),(45,84)]
result = ("&markers=%s" %x for x in markers)
return result
Comment dois-je faire comme ci-dessous ne me donne pas la chaîne réelle?
source d'informationauteur Reno | 2013-04-30
Vous devez vous connecter pour publier un commentaire.
Vous devez joindre à votre texte comme ceci:
Mise à JOUR
Je n'ai pas d'abord le
','.join(map(str, x))
section dans là pour faire de chaque tuple dans les chaînes. Cette poignées de longueur variable de n-uplets, mais si vous aurez toujours exactement 2 numéros, vous pouvez voir gatto de commentaire ci-dessous.L'explication de ce qui se passe, c'est que nous faisons une liste avec un seul élément pour chaque tuple de marqueurs, en tournant les n-uplets en séparés par des virgules des chaînes qui nous formater dans le
&markers=
chaîne. Cette liste de chaînes de caractères est ensuite réunis séparés par une chaîne vide.Alors que la première réponse est de faire ce que l'on attend, je voudrais rendre un peu plus "pythonic" en se débarrassant de
map
et expressions imbriquées:(si c'est pour les url comme il semble, vous pouvez aussi jeter un oeil à
urllib.urlencode
)Voici une autre approche qui, espérons-le fait de le but le plus clair en précisant l'emplacement de chacun de vos valeurs explicitement:
Essayez de créer une chaîne vide en y ajoutant ensuite la suppression de la dernière virgule
résultat = "