본문 바로가기
파이썬

파이썬 Python-쉼표로 구분 된 목록 출력

by º기록 2020. 11. 17.
반응형

쉼표로 구분 된 항목 목록을 출력해야하는 코드를 작성 중입니다. 목록은 for 루프로 생성됩니다. 나는

for x in range(5):
    print(x, end=",")

문제는 목록의 마지막 항목과 함께 추가 된 마지막 쉼표를 제거하는 방법을 모르겠다는 것입니다. 다음과 같이 출력됩니다.

0,1,2,3,4,

끝 ','을 제거하려면 어떻게합니까?

 

해결 방법

 

print 서술문이 거의 다되었습니다.


>>> print(*range(5), sep=", ")
0, 1, 2, 3, 4

내장 된 print 는 인쇄 할 인수로 여러 항목을 사용합니다. 키워드가 아닌 인수는 sep 로 구분하여 인쇄됩니다. sep 의 기본값은 단일 공백입니다.

>>> print("hello", "world")
hello world

sep 를 변경하면 예상 한 결과가 나타납니다.

>>> print("hello", "world", sep=" cruel ")
hello cruel world

각 인수는 str () 에서처럼 문자열 화됩니다. iterable을 print 문에 전달하면 iterable을 하나의 인수로 문자열 화합니다.

>>> print(["hello", "world"], sep=" cruel ")
['hello', 'world']

그러나 이터 러블 앞에 별표를 넣으면 별표가 별도의 인수로 분해되어 sep 의 의도 된 사용을 허용합니다.

>>> print(*["hello", "world"], sep=" cruel ")
hello cruel world

>>> print(*range(5), sep="---")
0---1---2---3---4

주어진 구분 기호를 사용하여 이터 러블을 문자열에 조인하는 다른 방법은 구분 기호 문자열의 join 메서드를 사용하는 것입니다.

>>>print(" cruel ".join(["hello", "world"]))
hello cruel world

문자열이 아닌 요소를 명시 적으로 문자열로 변환해야하기 때문에 약간 어색합니다.

>>>print(",".join([str(i) for i in range(5)]))
0,1,2,3,4

당신이 제안하는 접근 방식은 루프를 사용하여 쉼표를 추가하는 문자열을 연결하는 것입니다. 물론 이것은 정확한 결과를 생성하지만 훨씬 더 힘든 작업입니다.

>>>iterable = range(5)
>>>result = ""
>>>for item, i in enumerate(iterable):
>>>    result = result + str(item)
>>>    if i > len(iterable) - 1:
>>>        result = result + ","
>>>print(result)
0,1,2,3,4

 

참조 페이지 https://stackoverflow.com/questions/32796452

 

 

반응형

댓글