esta pregunta utiliza el mismo método en la respuesta por @Aaron Digulla, con una sintaxis un poco más Pythonic. Podría hacer que algunas de las respuestas anteriores sean más fáciles de entender.
>>> for a,b,c in zip(foolist[::3],foolist[1::3],foolist[2::3]):
>>> print '{:<30}{:<30}{:<}'.format(a,b,c)
exiv2-devel mingw-libs tcltk-demos
fcgi netcdf pdcurses-devel
msvcrt gdal-grass iconv
qgis-devel qgis1.1 php_mapscript
Esto se puede adaptar fácilmente a cualquier número de columnas o columnas variables, lo que conduciría a algo así como la respuesta por @gnibbler. El espaciado se puede ajustar para el ancho de la pantalla.
Actualización: Explicación solicitada.
Indexing
foolist[::3]
selecciona cada tercer elemento de foolist
. foolist[1::3]
selecciona cada tercer elemento, comenzando en el segundo elemento ('1' porque python usa indexación cero).
In [2]: bar = [1,2,3,4,5,6,7,8,9]
In [3]: bar[::3]
Out[3]: [1, 4, 7]
postal
listas Comprimir (u otros iterables) genera tuplas de los elementos de las listas. Por ejemplo:
In [5]: zip([1,2,3],['a','b','c'],['x','y','z'])
Out[5]: [(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]
juntos
Poner estas ideas juntas obtenemos nuestra solución:
for a,b,c in zip(foolist[::3],foolist[1::3],foolist[2::3]):
Aquí primero generamos tres "rebanadas" de foolist
, cada uno en un índice por cada tercio -elemento y compensación por uno. Individualmente, cada uno de ellos contiene solo un tercio de la lista.Ahora cuando creamos zip estas divisiones e iteramos, cada iteración nos da tres elementos de foolist
.
que es lo que queríamos:
In [11]: for a,b,c in zip(foolist[::3],foolist[1::3],foolist[2::3]):
....: print a,b,c
Out[11]: exiv2-devel mingw-libs tcltk-demos
fcgi netcdf pdcurses-devel
[etc]
En lugar de:
In [12]: for a in foolist:
....: print a
Out[12]: exiv2-devel
mingw-libs
[etc]
primer lugar, no es una buena idea usar dict como nombre de variable En segundo lugar, lo que están tratando para imprimir aquí hay una lista, un dict utiliza {} y: para separar las claves y los valores –
-1: El título de la pregunta dice "lista" - una duplicación completa. La pregunta dice "dict". El código de muestra es una lista: una duplicación completa. ¿Quieres que la lista se convierta en un dict y se imprima? Si es así, corrige la pregunta para describir lo que * realmente * quieres. –
He corregido la descripción y el código de muestra según las recomendaciones. El título y la descripción ahora reflejan mi objetivo. Gracias por las correcciones. –