Que es la mayoría de python el camino para convertir una lista de tuplas a la cadena?

Tengo:

[(1,2), (3,4)]

y quiero:

"(1,2), (3,4)"

Mi solución ha sido:

l=[(1,2),(3,4)]
s=""
for t in l:
    s += "(%s,%s)," % t
s = s[:-1]

Hay más python manera de hacer esto?

¿Cuáles son estas tuplas, ¿por qué necesitan para estar en una cadena, y que de hecho deben ser tuplas?
¿por qué quieres hacer esto? ¿cuál es el problema?
Me encantaría tener ustedes de elaborar más en sus comentarios (todavía estoy aprendiendo Python mí mismo). Puede que no sea una respuesta efectiva a OP de la cadena de formato de problema, pero estoy seguro de que ustedes tienen puntos muy importantes para hacer.
Línea de base: no hay un punto en esto. La tupla — como una tupla, es una estructura fina. Por qué meterse con él para hacer un oscuramente cadena con formato? Si lo que desea es una cadena, entonces el string.format método va a hacer el trabajo muy simple. Si quieren algo más, entonces la pregunta que se debe decir lo que están atando a lograr.
Espera, ¿qué? quiero para introducir los ataques de inyección SQL en el código? Python te da las herramientas para hacerlo bien y quieres ir fuera de su camino para hacerlo mal? no tengo palabras.

OriginalEl autor ssoler | 2010-07-20

7 Comentarios

  1. 23

    usted podría querer usar algo tan simple como:

    >>> l = [(1,2), (3,4)]
    >>> str(l).strip('[]')
    '(1, 2), (3, 4)'

    .. que es útil, pero no se garantiza que funcione correctamente

    ¿Qué pasa si las tuplas son las tuplas de las cadenas que contienen []?
    str.strip() sólo la quita de los extremos.
    Parece que la mala práctica para confiar en el interior de la cadena con la representación de una lista.
    es la causa de algún problema con unicode figuras
    No va a funcionar bien si usted quiere unirse a un separador diferente.

    OriginalEl autor mykhal

  2. 32

    Usted puede intentar algo como esto (ver también en ideone.com):

    myList = [(1,2),(3,4)]
    print ",".join("(%s,%s)" % tup for tup in myList)
    # (1,2),(3,4)
    mientras @mykhal la solución es más simple, creo que este es más bonito 🙂
    Python, robusto y corto. Gracias.

    OriginalEl autor polygenelubricants

  3. 17

    Cómo sobre:

    >>> tups = [(1, 2), (3, 4)]
    >>> ', '.join(map(str, tups))
    '(1, 2), (3, 4)'
    Una solución más limpia por lejos !
    la mayoría de los «python» como respuesta.

    OriginalEl autor pillmuncher

  4. 1

    ¿

    l = [(1, 2), (3, 4)]
    print repr(l)[1:-1]
    # (1, 2), (3, 4)
    El espacio aquí no es en realidad como se estipula; si que es importante, este enfoque no funciona como python agrega un espacio después de cada elemento en una lista o tupla.

    OriginalEl autor Benj

  5. 1

    Creo que esto es bastante clara: la

    >>> l = [(1,2), (3,4)]
    >>> "".join(str(l)).strip('[]')
    '(1,2), (3,4)'

    Intentamos, trabajó como un encanto para mí.

    OriginalEl autor luissanchez

  6. 1

    La mayoría de python solución es

    tuples = [(1, 2), (3, 4)]
    
    tuple_strings = ['(%s, %s)' % tuple for tuple in tuples]
    
    result = ', '.join(tuple_strings)

    OriginalEl autor ValarDohaeris

  7. 0

    Tres más 🙂

    l = [(1,2), (3,4)]
    
    unicode(l)[1:-1]
    # u'(1, 2), (3, 4)'
    
    ("%s, "*len(l) % tuple(l))[:-2]
    # '(1, 2), (3, 4)'
    
    ", ".join(["%s"]*len(l)) % tuple(l)
    # '(1, 2), (3, 4)'

    OriginalEl autor blazt

Dejar respuesta

Please enter your comment!
Please enter your name here