programing

목록 항목을 인쇄하는 부정적인 방법

linuxpc 2023. 5. 6. 14:07
반응형

목록 항목을 인쇄하는 부정적인 방법

파이썬 목록에 있는 모든 객체를 인쇄하는 것보다 더 좋은 방법이 있는지 알고 싶습니다.

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이유를 확인하기 위해printNone이것 좀 보세요

다음 예제와 같이 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

반응형