2012-10-05 2 views
6

파이썬 버전 3.2.3을 사용하고 있습니다. 나는 일련의 숫자들의리스트를 인쇄하려고하는데, 인쇄 명령은 항상 숫자 하나를 연속으로 인쇄하는 것처럼 보인다.파이썬 v.3에서 숫자 목록 인쇄하기

numbers = [1, 2, 3, 4, 5]; 
for num in numbers: 
    print("\t ", num) 

출력은 다음과 같습니다

1 

2 
... 

필요한 출력 내가 당신의 도움을 주셔서 감사합니다 것 1 2 3 4 5

입니다. P. 나는 여기에서 웹을 검색했고 대부분의 질문은 파이썬 2.7과 관련이 있었다.

+0

[python-3.x] (http : // stackoverflow.com/questions/tagged/python-3.x) 태그를 사용하면 검색에 도움이 될 수 있습니다. – Evert

답변

10

은 자동 EOL 출력 억제 (또는 교체)하는 end 인수를 사용

print("\t ", num, end='') 

을 또는, 당신은 아마 사용해야합니다

print('\t'.join(map(str, [1, 2, 3, 4, 5]))) 
+0

Jon에게 답장을 보내 주셔서 감사합니다. 문제가 해결되었습니다. – Sinan

+0

인쇄가 더 쉬운 방법이 있습니다 :'print (* numbers, sep = '\ t')' –

+2

@ThomasK 여러분의 의견은 실제로 매우 좋은 대답입니다. –

4

당신은 탭 문자를 사용하여 가입 .join()를 사용할 수 있습니다

>>> numbers = [1, 2, 3, 4, 5] 
>>> print('\t'.join(map(str, numbers))) 
1 2 3 4 5 

map(str, numbers)하는 [str(n) for n in numbers] 동일합니다.

+0

댓글을 주셔서 감사합니다. 고맙습니다. – Sinan

+0

'map (str, numbers)'는 여러분이 작성한 것이 아니라'(str (n) for numbers)'와 유사합니다. –

2

대신 print()sys.stdout.write()를 사용할 수있는 출력을 즉시 출력하고 개행하지 않고 출력을 보냅니다.

이렇게하면 메모리에 전체 문자열을 한 번에 저장하지 않는 것이 좋지 않은 단점이 있습니다.

print(*numbers, sep='\t') 

: (. 배열이 매우 컸다 경우 join 접근 방식은 컴퓨터를 충돌 할) 다른 답변에 추가

+0

"컴퓨터를 크래시하여"파이썬 프로세스를 중단하십시오. " – Deestan

+0

코멘트 주셔서 감사합니다. – Sinan

7

는 이제 인쇄를 할 수있는 깔끔한 방법이하는 기능입니다 원래 코드와 달리 첫 번째 숫자 앞에 탭을 넣지 않습니다. 여분의 탭을 원하면 가장 간단한 방법은 빈 항목을 숫자 앞에 놓는 것입니다. 따라서 추가 탭 구분 기호를 만듭니다.

print('', *numbers, sep='\t')