관리 메뉴

웹개발자의 기지개

[Python] for 문 정리 - key, value, items(), keys() 본문

python/파이썬 교육

[Python] for 문 정리 - key, value, items(), keys()

http://portfolio.wonpaper.net 2021. 5. 5. 16:59

파이썬에서 for 문은 아주 유용한 놈이다. 꼭 익혀두자.

dictionary 로 된 데이터를 items() 와 keys() 으로 한꺼번에 쓸 수 있다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
dictEx01 = {
    'num' : ['k001','a2393','c2301','m4100'],
    'name' : ['강감찬','세종대왕','홍길동','마징가'],
    'jumsu' : ['110,000','1,200','98,000','45,000']
}
 
#print(dictEx01)
#print(dir(dictEx01))
#print(type(dictEx01))   # <class 'dict'>
 
# key 를 이용하여 처리 (keys() 사용)
for k in dictEx01.keys():
    print(k, " : ", dictEx01[k])
 
"""
num  :  ['k001', 'a2393', 'c2301', 'm4100']
name  :  ['강감찬', '세종대왕', '홍길동', '마징가']
jumsu  :  ['110,000', '1,200', '98,000', '45,000']
"""
 
print()
 
# key 와 value 를 이용하여 동시에 처리한다 (items() 사용)
for k,v in dictEx01.items():
    print(k, " : ", v)
 
"""
num  :  ['k001', 'a2393', 'c2301', 'm4100']
name  :  ['강감찬', '세종대왕', '홍길동', '마징가']
jumsu  :  ['110,000', '1,200', '98,000', '45,000']
"""
cs

 

위의 두가지 소스를 보면 결과는 마찬가지로 나타난다.

 

이제는 이를 바탕으로 PyQt5 와 tableWidget 를 이용해서 이 for문 형태로 item 들을 실제로 넣어보자.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
 
kospi_top5 = {
    'code' : ['005930','015760','005380','090430','012330'],
    'name' : ['삼성전자','한국전력','현대차','아모레퍼시픽','현대모비스'],
    'cprice' : ['1,269,000','60,100','132,000','414,500','243,500']
}
 
# 칼럼 인덱스값 지정하기
column_idx_lookup = {'code':0'name':1'cprice':2}
 
class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setupUI()
 
    def setupUI(self):
        self.setGeometry(800,200,300,300)
        self.tableWidget = QTableWidget(self)
        self.tableWidget.resize(290,290)
        self.tableWidget.setRowCount(5)
        self.tableWidget.setColumnCount(3)
        self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)
 
        self.setTableWidgetData()
 
    def setTableWidgetData(self):
        column_headers = ['종목코드','종목명','종가']
        self.tableWidget.setHorizontalHeaderLabels(column_headers)
 
        for k,v in kospi_top5.items():
            col = column_idx_lookup[k]
            for row, val in enumerate(v):
                item = QTableWidgetItem(val)
                if col==2:  # cprice 라면 우측정렬
                    item.setTextAlignment(Qt.AlignVCenter | Qt.AlignRight)
                
                self.tableWidget.setItem(row,col,item)
        
        self.tableWidget.resizeColumnsToContents()
        self.tableWidget.resizeRowsToContents()
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    mywindow = MyWindow()
    mywindow.show()
    app.exec_()     
cs

 

33문부터 나오는 for 문이 핵심이다.

 

 

 

Comments