在 Python 中将列表元素打印在单独的行上
- 2024-12-27 08:47:00
- admin 原创
- 114
问题描述:
当我尝试此代码时:
import sys
print sys.path
我得到如下输出:
['.', '/usr/bin', '/home/student/Desktop', '/home/student/my_modules', '/usr/lib/pyth
on2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/pyth
on2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/local/lib/python2.6/dist-pack
ages', '/usr/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages/PIL', '/
usr/lib/python2.6/dist-packages/gst-0.10', '/usr/lib/pymodules/python2.6', '/usr/lib/
python2.6/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.6/gtk-2.0', '/usr/lib/p
ython2.6/dist-packages/wx-2.8-gtk2-unicode']
我怎样才能将列表的每个元素打印在单独的行上,就像这样?
/usr/bin
/home/student/Desktop
/home/student/my_modules
解决方案 1:
print("
".join(sys.path))
(外括号是为了兼容 Python 3 而包含的,在 Python 2 中通常会省略。)
解决方案 2:
使用打印函数(Python 3.x)或者导入它(Python 2.6+):
from __future__ import print_function
print(*sys.path, sep='
')
解决方案 3:
使用splat 运算符 ( *
)。
默认情况下,print
打印以空格分隔的参数。使用sep
参数指定分隔符:
print(*sys.path, sep="
")
解决方案 4:
处理此类选项的另一个好方法是pprint
模块,它(除其他外)以每行一个元素的漂亮方式打印长列表:
>>> import sys
>>> import pprint
>>> pprint.pprint(sys.path)
['',
'/usr/lib/python27.zip',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/site-packages',
'/usr/lib/python2.7/site-packages/PIL',
'/usr/lib/python2.7/site-packages/gst-0.10',
'/usr/lib/python2.7/site-packages/gtk-2.0',
'/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info',
'/usr/lib/python2.7/site-packages/webkit-1.0']
>>>
解决方案 5:
for path in sys.path:
print(path)
解决方案 6:
Sven Marnach 的答案基本上就是这样,但有一个普遍性问题......如果打印的列表不只是包含字符串,它就会失败。
因此,“如何打印出一个由换行符分隔的元素列表”的更普遍的答案是......
print '
'.join([ str(myelement) for myelement in mylist ])
再次强调,JBernardo 指出的打印函数方法更胜一筹。如果可以,使用打印函数代替打印语句几乎总是一个好主意。
解决方案 7:
基于 的稍微更通用的解决方案join
,甚至适用于pandas.Timestamp
:
`print("
".join(map(str, my_list)))`
解决方案 8:
要在单独的行上打印列表元素,您可以使用:
files = ['test1.txt', 'test2.txt', 'test3.txt']
for i in range(len(files)): print(files[i])
解决方案 9:
sys.path 返回路径列表
参考
系统路径
指定模块搜索路径的字符串列表。根据环境变量PYTHONPATH和安装相关的默认值进行初始化。
在程序启动时初始化时,此列表的第一项 path[0] 是包含用于调用 Python 解释器的脚本的目录。如果脚本目录不可用(例如,如果以交互方式调用解释器,或者如果从标准输入读取脚本),则 path[0] 为空字符串,这会指示 Python 首先在当前目录中搜索模块。请注意,脚本目录插入在PYTHONPATH的结果插入的条目之前。
import sys
dirs=sys.path
for path in dirs:
print(path)
或者你可以只打印第一条路径
print(dir[0])
解决方案 10:
您还可以将列表转换为大小为len(sys.path)
print(np.array(sys.path).reshape(-1,1))
输出:
[['.']
['/usr/bin']
['/home/student/Desktop']
['/home/student/my_modules']
['/usr/lib/python2.6']
['/usr/lib/python2.6/plat-linux2']
['/usr/lib/python2.6/lib-tk']
['/usr/lib/pyton2.6/lib-old']
['/usr/lib/python2.6/lib-dynload']
['/usr/local/lib/python2.6/dist-packages']
['/usr/lib/python2.6/dist-packages']
['/usr/lib/python2.6/dist-packages/PIL']
['/usr/lib/python2.6/dist-packages/gst-0.10']
['/usr/lib/pymodules/python2.6']
['/usr/lib/python2.6/dist-packages/gtk-2.0']
['/usr/lib/pymodules/python2.6/gtk-2.0']
['/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode']]