gpt4 book ai didi

python - 如何更好地打印列表?

转载 作者:IT老高 更新时间:2023-10-28 21:05:54 25 4
gpt4 key购买 nike

这类似于 How to print a list in Python “nicely” ,但我想更好地打印列表 - 没有括号、撇号和逗号,甚至在列中更好。

foolist = ['exiv2-devel', 'mingw-libs', 'tcltk-demos', 'fcgi', 'netcdf', 
'pdcurses-devel', 'msvcrt', 'gdal-grass', 'iconv', 'qgis-devel',
'qgis1.1', 'php_mapscript']

evenNicerPrint(foolist)

想要的结果:

exiv2-devel       msvcrt        
mingw-libs gdal-grass
tcltk-demos iconv
fcgi qgis-devel
netcdf qgis1.1
pdcurses-devel php_mapscript

谢谢!

最佳答案

这个答案在@Aaron Digulla 的答案中使用了相同的方法,只是使用了更多的 Pythonic 语法。这可能会使上面的一些答案更容易理解。

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

这可以很容易地适应任意数量的列或可变列,这将导致类似于@gnibbler 的答案。可以根据屏幕宽度调整间距。


更新:按要求解释。

索引

foolist[::3] 选择 foolist 的每第三个元素。 foolist[1::3] 选择每三个元素,从第二个元素开始('1' 因为 python 使用零索引)。

In [2]: bar = [1,2,3,4,5,6,7,8,9]
In [3]: bar[::3]
Out[3]: [1, 4, 7]

压缩

压缩列表(或其他可迭代对象)生成列表元素的元组。例如:

In [5]: zip([1,2,3],['a','b','c'],['x','y','z'])
Out[5]: [(1, 'a', 'x'), (2, 'b', 'y'), (3, 'c', 'z')]

一起

将这些想法放在一起,我们得到了解决方案:

for a,b,c in zip(foolist[::3],foolist[1::3],foolist[2::3]):

这里我们首先生成 foolist 的三个“切片”,每个切片由 every-third-element 索引并偏移一个。单独地,它们每个只包含列表的三分之一。现在,当我们压缩这些切片并迭代时,每次迭代都会为我们提供 foolist 的三个元素。

这是我们想要的:

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]

代替:

In [12]: for a in foolist: 
....: print a
Out[12]: exiv2-devel
mingw-libs
[etc]

关于python - 如何更好地打印列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com