목록 항목을 인쇄하는 부정적인 방법
파이썬 목록에 있는 모든 객체를 인쇄하는 것보다 더 좋은 방법이 있는지 알고 싶습니다.
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을 사용한다고 가정하면 다음과 같습니다.
print(*myList, sep='\n')
이것은 일종의 짐을 푸는 것입니다.Python 튜토리얼의 세부 정보:인수 목록 압축 풀기
다음을 사용하여 Python 2에서 동일한 동작을 얻을 수 있습니다.from __future__ import print_function
.
Python 2의 인쇄문을 사용하면 어떤 종류의 반복이 필요합니다.에 대한 당신의 질문과 관련하여print(p) for p in myList
작동하지 않습니다. 동일한 작업을 수행하고 여전히 간단한 다음을 사용할 수 있습니다.
for p in myList:
print p
를 사용하는 솔루션의 경우'\n'.join()
나는 목록 이해와 생성기를 선호합니다.map()
그래서 아마 다음을 사용할 것입니다.
print '\n'.join(str(p) for p in myList)
나는 항상 이것을 사용합니다.
l = [1,2,3,7]
print "".join([str(x) for x in l])
[print(a) for a in list]
모든 항목을 출력하지만 마지막에 None 유형을 많이 줄 것입니다.
Python 2의 경우.*:
사용자 클래스에 대해 __str__() 함수를 오버로드하는 경우 맵(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.')
단일 라인 코드를 사용하여 지정된 목록의 각 요소를 인쇄하는 방법
for i in result: print(i)
당신은 이것을 시도할 수 있습니다: 이것은 또한 그것을 문자열로 인쇄할 것입니다.
print(''.join([p for p in myList]))
또는 무언가를 인쇄할 때마다 새 줄을 인쇄하도록 하려면
print(''.join([p+'\n' for p in myList]))
목록에 있는 내용만 보려면 이 방법이 가장 편리하다고 생각합니다.
myList = ['foo', 'bar']
print('myList is %s' % myList)
간단하고 읽기 쉬우며 형식 문자열과 함께 사용할 수 있습니다.
저는 최근에 비밀번호 생성기를 만들었고 파이썬은 처음이지만 목록에 있는 모든 항목을 표시하기 위한 방법으로 이것을 만들었습니다(필요에 맞게 작은 편집으로...
x = 0
up = 0
passwordText = ""
password = []
userInput = int(input("Enter how many characters you want your password to be: "))
print("\n\n\n") # spacing
while x <= (userInput - 1): #loops as many times as the user inputs above
password.extend([choice(groups.characters)]) #adds random character from groups file that has all lower/uppercase letters and all numbers
x = x+1 #adds 1 to x w/o using x ++1 as I get many errors w/ that
passwordText = passwordText + password[up]
up = up+1 # same as x increase
print(passwordText)
제가 말했듯이, 저는 파이썬에 매우 처음이며 이것이 전문가에게는 꽤 까다로운 것이라고 확신하지만, 저는 단지 다른 예를 위해 여기에 있습니다.
OP의 질문은: 다음과 같은 것이 존재하는가, 그렇지 않다면 왜 존재하는가입니다.
print(p) for p in myList # doesn't work, OP's intuition
답은 다음과 같은 것이 존재한다는 것입니다.
[p for p in myList] #works perfectly
기적으사를 합니다.[]
목록 이해와 제거를 위해.print
인쇄를 피하기 위해None
이유를 확인하기 위해print
None
이것 좀 보세요
다음 예제와 같이 len() 기능을 사용하여 요소를 인쇄할 목록의 길이를 식별할 수도 있습니다.
sample_list = ['Python', 'is', 'Easy']
for i in range(0, len(sample_list)):
print(sample_list[i])
참조: https://favtutor.com/blogs/print-list-python
목록을 인쇄해도 괜찮다고 가정할 경우 [1,2,3] Python3에서 쉽게 사용할 수 있는 방법은 다음과 같습니다.
mylist=[1,2,3,'lorem','ipsum','dolor','sit','amet']
print(f"There are {len(mylist):d} items in this lorem list: {mylist}")
이를 실행하면 다음과 같은 출력이 생성됩니다.
이 로렘 목록에는 8개 항목이 있습니다: [1, 2, 3, 'lorem', 'ipsum', 'dolor', 'sit', 'amet']
언급URL : https://stackoverflow.com/questions/15769246/pythonic-way-to-print-list-items
'programing' 카테고리의 다른 글
주석이 달린 태그와 주석이 없는 태그의 차이점은 무엇입니까? (0) | 2023.05.06 |
---|---|
bash에서 "cat << EOF"는 어떻게 작동합니까? (0) | 2023.05.06 |
Mac OSX에서 Postgres DB가 시작되지 않음: 오류 메시지: Unix 도메인 소켓의 연결 (0) | 2023.05.06 |
Objective-C에서 문자열에 다른 문자열이 포함되어 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.05.06 |
JsonRequestBehavior가 필요한 이유는 무엇입니까? (0) | 2023.05.06 |