programing

Python에서 목록 요소를 별도의 줄로 인쇄

muds 2023. 7. 30. 18:10
반응형

Python에서 목록 요소를 별도의 줄로 인쇄

다음을 사용하여 Python 경로 폴더를 인쇄하려고 합니다.

import sys
print sys.path

출력은 다음과 같습니다.

>>> 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에서는 일반적으로 생략됩니다.)

인쇄 기능(Python 3.x)을 사용하거나 가져오기(Python 2.6+):

from __future__ import print_function

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

스플랫 연산자()*를 사용합니다.

기본적으로,print공백으로 구분된 인수를 인쇄합니다. 사용sep구분 기호를 지정하는 인수:

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)

Seven Marnach의 대답은 거의 그렇지만 한 가지 일반성 문제가 있습니다.인쇄 중인 목록에 문자열만 포함되어 있지 않으면 실패합니다.

그래서 "새로운 줄로 구분된 요소로 목록을 인쇄하는 방법"에 대한 더 일반적인 대답은...

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

한편, JBernardo가 지적한 인쇄 기능 접근 방식이 우수합니다.가능하면 인쇄 문 대신 인쇄 기능을 사용하는 것이 좋습니다.

다음을 기반으로 한 약간 더 일반적인 솔루션join에도 효과가 있는pandas.Timestamp:

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

목록 요소를 별도의 선으로 인쇄하는 경우 다음을 사용할 수 있습니다.

files = ['test1.txt', 'test2.txt', 'test3.txt']
for i in range(len(files)): print(files[i])

sys.path는 경로 목록을 반환합니다.

심판을 보다

sys.path

모듈의 검색 경로를 지정하는 문자열 목록입니다.환경 변수 PYONPATH에서 초기화되었으며 설치에 종속된 기본값이 추가되었습니다.

프로그램을 시작할 때 초기화된 것처럼, 이 목록의 첫 번째 항목인 path[0]는 Python 인터프리터를 호출하는 데 사용된 스크립트를 포함하는 디렉터리입니다.스크립트 디렉터리를 사용할 수 없는 경우(예: 인터프리터가 대화식으로 호출되거나 표준 입력에서 스크립트를 읽는 경우) path[0]는 빈 문자열이며, 이는 Python이 현재 디렉터리의 모듈을 먼저 검색하도록 지시합니다.PYONPATH의 결과로 삽입된 항목 앞에 스크립트 디렉터리가 삽입됩니다.

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

또는 첫 번째 경로만 인쇄할 수 있습니다.

print(dir[0])

목록을 크기의 숫자 배열로 바꿀 수도 있습니다.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']]

언급URL : https://stackoverflow.com/questions/6167731/printing-list-elements-on-separate-lines-in-python

반응형