Python "orden de lista"

Tengo 2 problemas con mis datos, ¿alguien puede ayudarme?

¿Cómo puedo obtener de esto?

1.

k=[['1','7', 'U1'],
 ['1.5', '8', 'U1'],
 ['2', '5.5', 'U1']]

toma esto

1,7,U1
1.5,8,U1
2,5.5,U1

EDITAR 2 HAGO ALGUN CAMBIO EN el segundo caso :, sigo buscando una solución para este:

2. Y como llegar, de esto

l=array([[[ 4.24231542], 'U1'],
       [[ 3.41424819], 'U1'],
       [[ 2.17214734], 'U1'],], dtype=object)

obtener

4.24231542,U1
3.41424819,U1
2.17214734,U1

Muchas Gracias

preguntado el 16 de mayo de 11 a las 19:05

Ninguno de ellos es sintácticamente válido. -

Hmm, esto es lo que obtengo en Python Shell, solo copio algunos de los datos ... ¿tal vez debo agregar comas? -

Sí, definitivamente se requieren las comas. -

Hmm, agregué para el primer ejemplo, ¿sabías cómo copiar desde IDE exactamente con comas y todo ...? -

Veo que ha cambiado la pregunta. ¿Eso es un NumPy? array? Si es así, ¿qué es U1? -

8 Respuestas

1)

for x in k:
    print(','.join(x))

2)

for x,y in l:
    print('%.8f,%s' % (x[0], y))

contestado el 16 de mayo de 11 a las 23:05

@thaking: ¿cómo no hace lo que quieres? Produce exactamente la salida que especifique. - Fred Foo

¿Cómo puedo modificar esto para que no se imprima, solo para guardar en un nuevo kk o ll? - agradeciendo

Utilice una lista de comprensión: [','.join(x) for x in k]. - Fred Foo

Mmmm, pero luego aparece, cuando lo imprimo: ['1,7, U1', '1.5,8, U1', '2,5.5, U1'] - agradeciendo

Es una lista de líneas sin nuevas líneas. Agregue nuevas líneas y únase a ellos. - Rosh Oxymoron

Estilo funcional de una línea:

print '\n'.join(','.join(x) for x in k)

contestado el 16 de mayo de 11 a las 23:05

for a,b,c in k: print "%s,%s,%s" % (a,b,c)

for a,b in l: print "%s,%s" % (a[0],b)

contestado el 16 de mayo de 11 a las 23:05

Gracias por esto, pero también tengo datos donde no es solo 3 (a, b, c), hay datos aleatorios, por ejemplo 1,3.4,5,3.5, U1 ..... - agradeciendo

@thaking: marque cualquier otro de los miles de millones aquí que usa join. Todos son buenos para la longitud de sus datos. - Boaz Yaniv

>>> print k
[['1', '7', 'U1'], ['1.5', '8', 'U1'], ['2', '5.5', 'U1']]
>>> for a, b, c in k:
...     print '%s,%s,%s' % (a, b, c)
...
1,7,U1
1.5,8,U1
2,5.5,U1

¡Ahora tu intenta! (para el segundo)

contestado el 16 de mayo de 11 a las 23:05

Voy a aventurarme a adivinar lo que realmente quieres decir en términos de sintaxis.

Para el primero:

k=[['1','7', 'U1'],
 ['1.5', '8', 'U1'],
 ['2', '5.5', 'U1']]

for l in k:
    print ', '.join(l)

Para el segundo:

for l in k:
    print l[0][0], l[1]

Espero que esto ayude

contestado el 16 de mayo de 11 a las 23:05

El segundo imprimirá los datos separados por espacios, en lugar de separados por comas. - Fred Foo

for a in k: print ",".join (a)

contestado el 16 de mayo de 11 a las 23:05

Aquí hay una única solución que funcionará para ambos 1 y 2:

k = [['1', '7', 'U1'], ['1.5', '8', 'U1'], ['2', '5.5', 'U1']]
l = [[[4.2423154199999997], 'U1'], [[3.4142481899999999], 'U1'], [[2.17214734], 'U1']]

make_string = lambda x: ",".join(map(make_string, x)) if isinstance(x, list) else str(x)

print "\n".join(map(make_string, k))
print "\n".join(map(make_string, l))

contestado el 16 de mayo de 11 a las 23:05

Usando mapa:

k = [['1','7', 'U1'], ['1.5', '8', 'U1'], ['2', '5.5', 'U1']]

map(','.join, k) # returns ['1,7,U1', '1.5,8,U1', '2,5.5,U1']

contestado el 17 de mayo de 11 a las 05:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.