簡體   English   中英

在 Python 中的不同行上打印列表元素

[英]Printing list elements on separate lines in Python

我正在嘗試使用以下方法打印出 Python 路徑文件夾:

import sys
print sys.path

output是這樣的:

>>> 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
etc
print("\n".join(sys.path))

(外圓括號包含在 Python 3 兼容性中,通常在 Python 2 中省略。)

使用打印 function (Python 3.x) 或導入它 (Python 2.6+):

from __future__ import print_function

print(*sys.path, sep='\n')

處理這種選項的另一個不錯的選擇是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']
>>> 
for path in sys.path:
    print(path)

使用splat 運算符 ( * )

默認情況下, print打印 arguments 以空格分隔。 使用sep參數指定分隔符:

print(*sys.path, sep="\n")

Sven Marnach 的答案差不多,但有一個普遍性問題......如果正在打印的列表不只包含字符串,它將失敗。

因此,對“如何打印出由換行符分隔的元素的列表”的更一般的答案......

print '\n'.join([ str(myelement) for myelement in mylist ])

話又說回來,JBernardo 指出的打印 function 方法更優越。 如果可以的話,使用 print function 代替 print 語句幾乎總是一個好主意。

嘗試以下操作:

import sys
for row in sys.path:
     print(row)

基於join稍微更通用的解決方案,甚至適用於pandas.Timestamp

print("\n".join(map(str, my_list)))

sys.path 返回路徑列表

參考

系統路徑

指定模塊搜索路徑的字符串列表。 從環境變量PYTHONPATH初始化,加上依賴於安裝的默認值。

在程序啟動時初始化時,此列表的第一項路徑 [0] 是包含用於調用 Python 解釋器的腳本的目錄。 如果腳本目錄不可用(例如,如果交互調用解釋器或從標准輸入讀取腳本),path[0] 是空字符串,它指示 Python 首先搜索當前目錄中的模塊。 請注意,在PYTHONPATH插入的條目之前插入了腳本目錄。

import sys
dirs=sys.path
for path in dirs:
   print(path)

或者你可以只打印第一條路徑

print(dir[0])

您還可以將列表轉換為大小為len(sys.path)的 numpy 數組

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM