Comment faire pour imprimer une liste de plus de bien?
Ceci est similaire à Comment imprimer une liste en Python “bien”, mais je voudrais imprimer la liste encore plus joliment, sans les crochets et les apostrophes et les virgules, et encore mieux dans les colonnes.
foolist = ['exiv2-devel', 'mingw-libs', 'tcltk-demos', 'fcgi', 'netcdf',
'pdcurses-devel', 'msvcrt', 'gdal-grass', 'iconv', 'qgis-devel',
'qgis1.1', 'php_mapscript']
evenNicerPrint(foolist)
Résultat souhaité:
exiv2-devel msvcrt
mingw-libs gdal-grass
tcltk-demos iconv
fcgi qgis-devel
netcdf qgis1.1
pdcurses-devel php_mapscript
merci!
Tout d'abord, il n'est pas une bonne idée d'utiliser dict qu'un nom de variable Deuxièmement, la chose que vous essayez d'imprimer voici une liste, une dict utilise {} et : séparer les clés et valeurs
-1: Le titre de la question dit: "liste", un duplicata. La question, dit "dict". L'exemple de code est une liste, un duplicata. Voulez-vous la liste converti dict et imprimé? Si oui, résoudre la question de décrire ce que vous vraiment vous voulez.
J'ai corrigé la description et des exemples de code, comme conseillé. Le titre et la description reflètent maintenant mon but. Merci pour les corrections.
Si les downvotes, parce que la confusion initiale et les pauvres dans le phrasé, veuillez vous rétracter, comme cela a été réglé depuis. Si les downvotes sont pour une autre raison, veuillez expliquer pour que je puisse le corriger ou au moins de ne pas faire la même erreur à nouveau. Je vous remercie.
re downvotes: Downvoters ne reçois pas les notifications de commentaires à l'issue du vote 🙁
-1: Le titre de la question dit: "liste", un duplicata. La question, dit "dict". L'exemple de code est une liste, un duplicata. Voulez-vous la liste converti dict et imprimé? Si oui, résoudre la question de décrire ce que vous vraiment vous voulez.
J'ai corrigé la description et des exemples de code, comme conseillé. Le titre et la description reflètent maintenant mon but. Merci pour les corrections.
Si les downvotes, parce que la confusion initiale et les pauvres dans le phrasé, veuillez vous rétracter, comme cela a été réglé depuis. Si les downvotes sont pour une autre raison, veuillez expliquer pour que je puisse le corriger ou au moins de ne pas faire la même erreur à nouveau. Je vous remercie.
re downvotes: Downvoters ne reçois pas les notifications de commentaires à l'issue du vote 🙁
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Simple:
Merci, fixe 🙂
J'accepte ce que la réponse parce que je l'ai eu pour fonctionner de manière fiable dans le plus court laps de temps-et je peux le comprendre. Alors qu'il serait mieux d'avoir de la dynamique multi-colonnes rapports que certains des autres réponses, je ne pouvais pas les faire fonctionner de manière fiable (probablement parce que je n'ai pas été en mesure de suivre la logique) -- parfois les éléments sont supprimés de la liste à mesure qu'il grandit/rétrécit, ou ils n'ont plus de ligne en colonnes. Merci Aaron!
OriginalL'auteur
Cette réponse utilise la même méthode dans la réponse par @Aaron Digulla, avec un peu plus pythonic de la syntaxe. Il pourrait prendre certaines des réponses ci-dessus, plus facile à comprendre.
Cela peut être facilement s'adapter à n'importe quel nombre de colonnes ou de colonnes variables, ce qui conduirait à quelque chose comme la réponse de @gnibbler. L'espacement peut être ajustée à la largeur de l'écran.
Mise à jour: Explication comme demandé.
Indexation
foolist[::3]
sélectionne chaque troisième élément defoolist
.foolist[1::3]
sélectionne chaque troisième élément, à compter du deuxième élément ('1' parce que python utilise zéro-indexation).zip
La compression des listes (ou d'autres iterables) génère des n-uplets d'éléments de la liste. Par exemple:
ensemble
Mettre ces idées ensemble, nous obtenons notre solution:
Ici nous avons d'abord générer des trois "tranches" de
foolist
, chaque indexé par tous les tiers-élément et contrebalancé par un autre. Individuellement, ils contiennent chacun un tiers seulement de la liste. Maintenant, quand nous zip, ces tranches et l'itération, chaque itération nous donne trois éléments defoolist
.Qui est ce que nous voulions:
Au lieu de:
Ajouté explication comme demandé par @matt wilkie
Excellente explication, merci!
Belle.
Il m'amuse toujours quand les gens disent que Python est le meilleur langage pour apprendre, car il est extrêmement lisible. Cependant, le plus "Pythonic" comme code ils écrivent le moins compréhensible qu'il est.
OriginalL'auteur
Inspiré par les cascades de gimel réponse, ci-dessus.
Résultats (le deuxième répond à votre demande):
merci, en ont fait un edit à cet effet. Je suis en train de créer une nouvelle liste à partir de l'entrants obj qui est convertie à cordes. Élimine le besoin pour de multiples str() et protège les entrants objet d'être édité.
OriginalL'auteur
Voir mise en forme-une-liste-de-texte en colonnes,
Une solution générale, les poignées de n'importe quel nombre de colonnes et de l'impair listes.
Les caractères de tabulation séparer les colonnes, à l'aide du générateur d'expressions pour économiser de l'espace.
OriginalL'auteur
La façon dont Aaron a fait qu'il peut travailler avec plus de deux colonnes
OriginalL'auteur
Si les données sont dans le format que vous avez fournis, il est un peu plus de travail
OriginalL'auteur
Voici ma solution. (Copie sur GitHub gist)
Il prend terminal largeur d'entrée et affiche uniquement le nombre de colonnes que l'on peut tenir dans.
OriginalL'auteur
J'adresse un
n
colonne solution à @Aman's réponseTests
Mettre en place le test aléatoire longueurs de chaîne
qui renvoie
OriginalL'auteur
Comment quelque chose comme cela?
Sortie
OriginalL'auteur
Voici une solution en python 3.4 qui détecte automatiquement le terminal largeur et la prend en compte. Testé sur Linux et Mac.
OriginalL'auteur
Trouve cette question comme une rencontre presque la même tâche. Et j'ai créé la fonction d'impression de la liste en multi colonnes avec le nombre de colonnes en tant que paramètre. Peut-être pas aussi élégant comme une toile de solutions, mais il pourrait être utile pour quelqu'un.
Cependant, il gère les listes incomplètes, ex.: il peut imprimer la liste de 11 en 3 lignes.
Fonction ventilée pour une meilleure lisibilité:
et l'appel de la partie:
OriginalL'auteur
Il est utile de permettre inégale des colonnes, sans avoir à connaître à l'avance le nombre de colonnes que vous pouvez adapter:
Pour votre exemple:
Voici le code. Notez qu'il gère aussi les mots à la norme ANSI codes de couleur (tels que de l'colorama paquet) - ils ne pas gâcher la largeur des colonnes.
OriginalL'auteur
ou
OriginalL'auteur
Il y a des tonnes de réponses déjà, mais je vais partager ma solution, qui, en plus de l'impression de la liste en plusieurs colonnes, il choisit également le nombre de colonnes dynamiquement, à partir du terminal, de la largeur et de la chaîne la plus longue sur la liste.
OriginalL'auteur
OriginalL'auteur