파이썬 배열

조회수 1655회
arr1 = []
arr2 = []
arr3 = []

for i in arr1:
  for j in i:
     if j==0:
         print('', end='')
     else:
         print('*', end='')
  print()

for i in arr2:
  for j in i:
     if j==0:
         print('', end='')
     else:
         print('*', end='')
  print()

for i in arr3:
  for j in i:
     if j==0:
         print('', end='')
     else:
         print('*', end='')
  print()

arr1, arr2, arr3 를 출력할때 마지막 줄 하고 개행을 하지 않고 옆으로 넘기고 싶은데 어떻게 해야하나요?

end='\t' 하면 될 것 같았는데 이것또한 이리저리 넣어봐도 잘 안되네요ㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 옆으로 넘긴다는게 무슨 뜻인가요? 좀 더 구체적인 예를 들어주시면 좋겠습니다. Demi 2018.6.4 11:56
  • 댓글에는 엔터키가 처리가 안되어 다시 질문 수정 했습니다! 질문에 예시 올려 놓았으니 확인해주세욥..! 알 수 없는 사용자 2018.6.4 17:26

1 답변

  • 파이썬의 zip(*iterables)을 이용하면 여러 리스트를 한번에 순회할 수 있습니다.

    list1 = [1, 2, 3, 4]
    list2 = [100, 120, 30, 300]
    list3 = [392, 2, 33, 1]
    answer = []
    for i, j, k in zip(list1, list2, list3):
       answer.append( i + j + k )
    

    원본 로직을 수정하지 않는 선에서, 이를 적용하면

    arr1 = [[0,1,1], [0,0,1],[0,0,0]]
    arr2 = [[1,1,1], [1,0,0], [0,0,0]]
    arr3 = [[1,0,1], [1,1,0], [0,0,0]]
    
    for i, j, k in zip(arr1, arr2, arr3):
        str1, str2, str3 = '', '', ''
        for a,b,c in zip(i,j,k):
    
         if a==0:
             str1 += ''
         else:
             str1 += '*'
    
         if b==0:
             str2 += ''
         else:
             str2 += '*'
    
         if c==0:
             str3 += ''
         else:
             str3 += '*'
        print(str1, str2, str3)
    
    

    이렇게 하면 될 것 같네요!

    • 대박 사실 제 코드를 다 올리기 어려워서 간략하게 예시로 바꿔서 올렸는데, 제 코드 상에서도 똑같이 구현하니 완전히 퍼펙트하게 잘 돌아갑니다ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ감사해요ㅜㅜㅜㅜㅜㅜㅜㅜㅜ 알 수 없는 사용자 2018.6.4 18:04
    • 좋은 하루 보내세욤~ Demi 2018.6.4 18:04

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)