A menudo en Python necesitamos imprimir una lista por la línea de comandos. La manera mas habitual y sencilla es imprimir los elementos de la lista separados por comas. Por ejemplo:
Código
fruit_list = ['Albaricoque', 'Cereza', 'Ciruela', 'Higo', 'Kaki', 'Manzana', 'Melocoton', 'Nectarina', 'Nispero', 'Pera', 'Uva', 'Aguacate', 'Carambola', 'Chirimoya', 'Coco', 'Datil', 'Fresa', 'Fruta de la pasion', 'Kiwi', 'Litchi', 'Mango', 'Papaya', 'Platano', 'Grosella negra'] print ','.join(fruit_list)
Resultado
Aguacate, Albaricoque, Carambola, Cereza, Chirimoya, Ciruela,.....
Pero yo encuentro que no es muy legible para el usuario. Voy a dejar aquí una pequeña función que imprime por línea de comandos la lista formateada en columnas, ordenando los elementos alfabéticamente. A la función se le pasa por parámetro la lista (obvio) y el número de columnas que deseas. Como parámetro opcional (con un valor por defecto de 2) se puede indicar el espacio entre columnas. Para un ajuste óptimo, la función calcula el espacio que necesita para cada una de las columnas.
Código
def print_sorted_list(data, columns, gap=2): if data: gap = 2 ljusts = {} for count, item in enumerate(sorted(data), 1): column = count % columns ljusts[column] = len(item) if (column not in ljusts) else max(ljusts[column], len(item)) for count, item in enumerate(sorted(data), 1): print item.ljust(ljusts[count % columns] + gap), if (count % columns == 0) or (count == len(data)): print
Demo
fruit_list = ['Albaricoque', 'Cereza', 'Ciruela', 'Higo', 'Kaki', 'Manzana', 'Melocoton', 'Nectarina', 'Nispero', 'Pera', 'Uva', 'Aguacate', 'Carambola', 'Chirimoya', 'Coco', 'Datil', 'Fresa', 'Fruta de la pasion', 'Kiwi', 'Litchi', 'Mango', 'Papaya', 'Platano', 'Grosella negra'] print_sorted_list(fruit_list, columns=3)
Resultado
Aguacate Albaricoque Carambola Cereza Chirimoya Ciruela Coco Datil Fresa Fruta de la pasion Grosella negra Higo Kaki Kiwi Litchi Mango Manzana Melocoton Nectarina Nispero Papaya Pera Platano Uva
Saludos.