공부 예…
기출문제 37개 풀어서 7개틀림……
근데 아직 R은 시작도 안했어... 심지어 통계학도 있어...
수업시간에 자지 말걸... 죄송합니다 교수님... 오전수업이라 졸렸어요......
일단 저 제목이 뭔 개소린가 싶어서 들어오셨다고요? 말 그대로 파이썬에서 판다스 없이 표를 만드는 게 가능한지 지피티한테 물어봤음. 아니 그럼 왜 이런 걸 해보시는거예요? 그 예전에 내가 Biopython 없이 전사번역 올렸던거 기억하시죠? 그때 내가 Biplython을 설치해야 하기도 하고, 이게 깔아도 VScode에서 안된다고 했잖아요. 근데 판다스도 쓸라면 깔아야됩니다. 리눅스는 터미널에 치면 깔리는데 윈도우는 pip 찾아가서 pip install 쳐야 깔리더라 심지어…
그래서 물어본겁니다.
방법 1: 리스트 안의 리스트
table = [
['피카츄', '에몽가', '빠르모트'],
['이상해씨', '소미안', '냄새꼬'],
['꾸왁스', '발챙이', '물짱이'],
['파이리', '에이스번', '폭거북스']
]
그니까 이거 말하는거다. 근데 이건 걍 이차원 배열 아님?
for i in table:
print(i)
걍 이렇게 뽑으면 저 리스트가 그대로 나오니까
for i in table:
print(*i)
대괄호 빼고 깔끔하게 뽑고 싶으면 이런식으로 언패킹하던가 텍스트 조인하던가 해야됨.

언패킹하면서 구분자도 같이 줬다.
방법 2: 딕셔너리로 뽑기
table = [
{'이름':'미라이돈', '도감번호':'1008', '분류':'패러독스 포켓몬'},
{'이름':'코라이돈', '도감번호':'1007', '분류':'패러독스 포켓몬'},
{'이름':'복숭악동', '도감번호':'1025', '분류':'환상의 포켓몬'},
{'이름':'테라파고스', '도감번호':'1024', '분류':'전설의 포켓몬'}
]
이건 근데... 겉에만 대괄호지 JSON 아니냐... 아무튼 얘도 걍 for문 쓰면 딕셔너리가 그대로 나온다. 그럼 어떻게 해요?
for i in table:
print(i['이름'], i['도감번호'], i['분류'])
키값 픽하셔야죠. 저게 근데 웃긴게 코라이돈이랑 미라이돈이랑 분류 밸류가 겹치잖아요? 그래서 분류까지 같이 뽑았더니 어떻게 됐냐면

미쳤습니까 휴먼이 날 반김.
방법 3: 딕셔너리 안에 리스트
이게 뭔 소리인가 궁금하시죠?
table = {
'타입':['전기/격투', '고스트/페어리', '에스퍼/페어리', '격투/페어리'],
'이름':['무쇠손','날개치는머리','사나운꼬리','무쇠무인'],
'출현하는 버전':['바이올렛','스칼렛','스칼렛','바이올렛']
}
괄호를 잘 보면 방법 1, 2는 바깥이 대괄호(네모난거)였는데 얘는 바깥이 중괄호고 딕셔너리 키값이랑 묶인 밸류가 1차원 배열이다. 그럼 얘는 어떻게 뽑냐고?
print(*table['이름'], *table['타입'], *table['출현하는 버전'])
이렇게 뽑으면 되긴 한데, 방법 1이랑 방법 2에 비해 뽑았을때 안이쁘다. 4*3으로 뜨는 게 아니라 걍 길쭉하게 뜸.
방법 4: 선까지 뽑고 싶다면
def drawing_table(data):
col_width = [max(len(str(row[i])) for row in data) for i in range(len(data[0]))]
def draw_line(sep="+",fill="-"):
return sep + sep.join(fill * (w + 2) for w in col_width) + sep
print(draw_line) # 맨 위 줄
for i, row in enumerate(data):
row_str = "| " + " | ".join(str(row[j]).ljust(col_width[j]) for j in range(len(row))) + " |"
print(row_str)
if i == 0:
print(draw_line())
print(draw_line())
table = [
['열1','열2','열3','열4'],
['피카츄','라이츄','파이리','꼬부기'],
['버터플','야도란','피죤투','또가스'],
['잠만보','망나뇽','질퍽이','탕구리'],
['고오스','왕구리','메탕구','오거폰']
]
drawing_table(table)
근데 얘는 왜 잘하다가 막줄에 줄 긋는걸 전역으로 빼버렸냐… 내가 뭔가 이상해서 함수 안으로 다시 넣긴 했음.
저 표가 지금 제목 말고 다른건 다 일정해서 그런데, ljust가 적용되어 있으면 왼쪽정렬 하고 남는 글자만큼을 뭘로 채운다. 저기 몇 개3글자가 아닌 걸로 바꿔보면

3번째 열이랑 4번째 열에 ljust가 적용돼서 왼쪽정렬이 된 것을 볼 수 있다.
저 줄에 긋는 하이픈 개수는 col_width로 정하는건데 그 열에서 제일 긴 글자수가 기준이 된다. 그래서 3열은 하이픈이 7개 그어져 있는데… 저게 한글하고 하이픈하고 바이트가 달라서 선 수축됐음…
결론: 예쁘게 뽑고 싶으면 걍 판다스 까십쇼 그게 아니지
'Coding > Python' 카테고리의 다른 글
| 전사/번역을 Biopython 없이 해보자 (0) | 2025.09.10 |
|---|---|
| Matplotlib으로 정규분포를 그려보자 (0) | 2024.07.16 |
| Matplotlib으로 그래프를 그려보자 (2) (0) | 2024.06.05 |
| Matplotlib으로 그래프를 그려보자 (0) | 2024.06.03 |
| 배수 판별을 해보자 (0) | 2024.04.10 |












































