파이썬 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

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

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

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
  • 참고하세요.

    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
    
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.