이보다 Python 목록의 모든 개체를 인쇄하는 더 좋은 방법이 있는지 알고 싶습니다.
myList = [Person("Foo"), Person("Bar")]
print("\n".join(map(str, myList)))
Foo
Bar
이 방법은 정말 좋지 않습니다.
myList = [Person("Foo"), Person("Bar")]
for p in myList:
print(p)
다음과 같은 것이 없습니까?
print(p) for p in myList
그렇지 않다면 내 질문은 … 왜? 포괄적 인 목록으로 이런 종류의 일을 할 수 있다면 목록 외부의 간단한 문장으로하는 것은 어떨까요?
답변
Python 3.x를 사용한다고 가정합니다.
print(*myList, sep='\n')
from __future__ import print_function
mgilson이 주석에 언급 한대로를 사용하여 Python 2.x에서 동일한 동작을 얻을 수 있습니다 .
Python 2.x의 print 문을 사용하면 print(p) for p in myList
작동하지 않는 것에 대한 질문과 관련하여 일종의 반복이 필요 합니다. 동일한 작업을 수행하고 여전히 한 줄인 다음을 사용할 수 있습니다.
for p in myList: print p
를 사용하는 솔루션의 '\n'.join()
경우 목록 이해력과 생성기를 선호 map()
하므로 다음을 사용합니다.
print '\n'.join(str(p) for p in myList)
답변
나는 이것을 항상 사용합니다.
#!/usr/bin/python
l = [1,2,3,7]
print "".join([str(x) for x in l])
답변
[print(a) for a in list]
모든 항목을 인쇄하지만 끝에 None 유형을 제공합니다.
답변
Python 2. *의 경우 :
Person 클래스에 대해 __str __ () 함수를 오버로드하면 map (str, …)으로 부분을 생략 할 수 있습니다. 이를위한 또 다른 방법은 다음과 같이 함수를 만드는 것입니다.
def write_list(lst):
for item in lst:
print str(item)
...
write_list(MyList)
Python 3. * 에는 print () 함수에 대한 인수 sep 가 있습니다. 문서를 살펴보십시오.
답변
@lucasg의 답변 확장 (받은 댓글에서 영감을 얻음) :
형식화 된 목록 출력 을 얻으려면 다음 행을 따라 수행 할 수 있습니다.
l = [1,2,5]
print ", ".join('%02d'%x for x in l)
01, 02, 05
이제는 ", "
구분 기호 (항목 사이에만, 끝이 아님) '02d'
를 %x
제공하고 와 결합 된 서식 지정 문자열은 각 항목에 대해 서식이 지정된 문자열을 제공합니다 x
.이 경우에는 두 자리 정수로 서식이 지정되고 왼쪽이 0으로 채워집니다.
답변
각 콘텐츠를 표시하기 위해 다음을 사용합니다.
mylist = ['foo', 'bar']
indexval = 0
for i in range(len(mylist)):
print(mylist[indexval])
indexval += 1
함수에서 사용하는 예 :
def showAll(listname, startat):
indexval = startat
try:
for i in range(len(mylist)):
print(mylist[indexval])
indexval = indexval + 1
except IndexError:
print('That index value you gave is out of range.')
내가 도왔기를 바랍니다.
답변
목록의 내용 만보고 싶다면 이것이 가장 편리하다고 생각합니다.
myList = ['foo', 'bar']
print('myList is %s' % str(myList))
간단하고 읽기 쉬우 며 형식 문자열과 함께 사용할 수 있습니다.