Python – convierte la lista de tuplas a cadena

¿Cuál es la forma más pirónica de convertir una lista de tuplas en cadenas?

Yo tengo:

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

y yo quiero:

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

Mi solución a esto ha sido:

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

¿Hay alguna forma más pythonica de hacer esto?

es posible que desee utilizar 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

Puedes probar 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) 

Qué tal si:

 >>> tups = [(1, 2), (3, 4)] >>> ', '.join(map(str, tups)) '(1, 2), (3, 4)' 

Qué tal si

 l = [(1, 2), (3, 4)] print repr(l)[1:-1] # (1, 2), (3, 4) 

Creo que esto es bastante bueno:

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

Pruébalo, funcionó como un encanto para mí.

La solución más pythonica es

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

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)'