파이썬 1열 출력을 나누어서 2열 출력으로 만들고싶은데요.


![이미지][1]

이런식으로 코드를 작성하였는데요.

경계선 아래 부분이 제가 원하는 데이터를 출력한 출력문입니다. 결과값을 2열로 하여 출력하고싶어서 경계선 윗부분처럼 코드를 작성하였는데요.

data = [('Result1'), ('Result2')] 이 부분의 ' '안을 문자로 인식하여

문자 자체가 2열로 출력이 됩니다.

제가 원하는 출력 방식은

Interpolation method: nearest

1hr 0.000 1.375

2hr 0.000 1.750

3hr -0.375 2.125

4hr -0.500 2.000

5hr -0.625 2.125

6hr -0.875 2.000

7hr -1.000 2.000

8hr -0.875 2.375

9hr -0.875 2.500

10hr -1.125 2.500

11hr -1.000 2.375

12hr -0.875 2.125

이런 형태의 출력을 하고 싶습니다. 작성한 코드중 어느부분을 어떻게 고치면 좋을까요?

코드를 런했을때 출력문은 댓글 사진첨부하였습니다.

  • 2017년 08월 09일에 작성됨

조회수 162


3 답변


좋아요
0
싫어요
채택취소하기

1번

from itertools import zip_longest
data = [('Result1'),('Result2')]
for columns in izip_longest(*data,fillvalue=''):
    print '\t'.join(map(' ' . join,columns))

Result1과 Result2라는 리스트 형태의 변수를 data 변수안에 넣고 싶으신 거라면 Result1과 2를 감싸고 있는 ''만 제거해주셔도 됩니다. 수정된 코드는 다음과 같습니다.

from itertools import zip_longest
data = [(Result1),(Result2)]
for columns in izip_longest(*data,fillvalue=''):
    print '\t'.join(map(' ' . join,columns))

======================================== 2번

print 'Interpolation method: ', interp
for it, out in zip(Time, Result1):
    print "%3.1d"%(it) + 'hr', '%10.3f'%(out)

print 'Interpolation method: ', interp
for it, out in zip(Time, Result2):
    print "%3.1d"%(it) + 'hr', '%10.3f'%(out)

Time, Result1, Result2 형태로 출력하고자 하시는 경우, 다음과 같이 수정하시면 됩니다.

print 'Interpolation method: ', interp
for it, middle, out in zip(Time, Result1, Result2):
    print "%3.1d"%(it) + 'hr', '%10.3f'%(middle), '%10.3f'%(out)

  • 감사합니다! 문제 잘 해결하였습니다.    나지희   2017.8.14 17:00     

이미지

  • 2017년 08월 09일에 작성됨


참고하세요.

r1 = {'1hr':1, '2hr':2, '3hr':3}
r2 = {'1hr':10, '2hr':20, '3hr':30}

d = {k:(v1, v2) for k, v1, v2 in zip(r1.keys(), r1.values(), r2.values())}

for k in d.keys():
    print(k, d[k][0], d[k][1])


1hr 1 10
2hr 2 20
3hr 3 30

  • 2017년 08월 09일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close