백준

백준 2870번: 수학숙제 (파이썬) _리스트 출력하기 / for-else

inns21 2024. 6. 21. 21:18

M = int(input())

n_list = list()
for i in range(M):
  str = input()
  filter = ''
  for j in str:
    if j.isdigit():
      filter += j
    else:
      if filter != '':
        n_list.append(int(filter))
      filter = ''
  else:
    if filter != '':
      n_list.append(int(filter))
n_list.sort()
print(*n_list, sep='\n')

 

잘 쓴 코드라고 생각하진 않지만 지난번에 어디선가 발견한 파이썬의 for-else문과 

리스트를 for문 없이 출력하는 방법을 사용해봐서 기록

 

for-else문의 경우 for문이 완벽하게 끝나면 마지막에 else문을 실행한다

중간에 break를 만나면 실행되지 않는다

 

파이썬에서는 *을 통해 리스트나 딕셔너리 같은 객체를 해방(?)시킬 수 있다

list = [1,2,3,4,5]
dict = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}

print(*list)              # 1 2 3 4 5
print(*list, sep=', ')    # 1, 2, 3, 4, 5
print(*dict)              # a b c d e
print(*dict.items())      # ('a', 1) ('b', 2) ('c', 3) ('d', 4) ('e', 5)