본문 바로가기

Python

PyCharm - Dict


  # Dict
# 비순차 자료구조
# 키를 통해 값을 찾는 연관배열 객체
# 선언방법은 {키:값} 형태로 정의하고 사용
# 다양한 자료형으로 구성된 데이터를 하나의 변수로 접근할수 있음

dict1= {'name':'혜교',  'age':35}

# 비순차 자료구조이기 때문에 인덱스로 조회 불가
# 단, 키를 통해 값을 조회
# 객체명[키명], 객체명.키명

print(dict1['name'], dict1['age'])


# dict 객체의 모든 키 조회   keys
for k in dict1.keys():
    print(k, end=', ')

# dict 객체의 모든 값 조회   values
for k in dict1.values():
    print(k, end=', ')

# dict 객체의 모든 키, 값 조회  items

for k, v in dict1.items():
    print(f'{k}/{v}', end=', ')


# dict 객체의 키를 이용해서 값 조회 : get
for k in dict1.keys():
    print(dict1.get(k), end=', ')



# dict 생성 1
dict1 = {}

# dict 생성 2
dict2 = dict( name ='수지', age=30)
print(dict2)

# dict 생성 3
data = [['name','지현'],['age',32]]

dict3 = dict(data)
print(dict3)



# 객체명[새로운키] = 새로운 값
dict1['name'] = '혜교'    #dict에 새로운 키와 값 추가
dict1['age'] = 35

print(dict1)

# 객체명[기존키] = 새로운 값 : 수정
dict1['age'] = 25
print(dict1)


# del 객체명 [키] : 삭제
del dict1['age']  # 키와 값 모두 삭제
print(dict1)


# 성적프로그램 v3a
# 리스트 자료구조를 이용해서
# 학생 1명분의 데이터를 처리
# dict 자료구조를 이용해서 처리
# 저장형식 : {'name':??,  'kor':??, 'eng':??, 'mat':??,
#             'tot':??,  'avg':??,  'grd':??  }


name = input('이름은?')
kor = int(input('국어는?'))
eng = int(input('영어는?'))
mat = int(input('수학은?'))

# 성적처리
tot = kor + eng + mat
avg = tot / 3
grd = '가'
if avg >= 90: grd = '수'
elif avg >=80: grd= '우'
elif avg >=70: grd= '미'
elif avg >=60: grd= '양'

# 데이터 통합
sj = {'name': name, 'kor':kor, 'eng':eng, 'mat':mat,
      'tot':tot, 'avg':avg, 'grd':grd }


# 처리결과 출력
print(sj)









# 성적프로그램 v3b
# 리스트 자료구조를 이용해서
# 학생 3명분의 데이터를 처리
# dict 자료구조를 이용해서 처리
# 저장형식 : {학생이름[:??,??,??,??,??,??] }

sjs= {}   # 리스트 생성

for i in range(3) :
    name = input('이름은?')
    kor = int(input('국어는?'))
    eng = int(input('영어는?'))
    mat = int(input('수학은?'))

    # 성적처리
    tot = kor + eng + mat
    avg = tot / 3
    grd = '가'
    if avg >= 90: grd = '수'
    elif avg >=80: grd= '우'
    elif avg >=70: grd= '미'
    elif avg >=60: grd= '양'

    # 데이터 추가
    data = [kor,eng,mat,tot,avg,grd]
    sjs[name] = data

# 3명의 성적데이터 출력

from pprint import pprint as pp  # pretty print

pp(sjs)
pp(sjs['aa']) # aa학생 성적데이터 조회

'Python' 카테고리의 다른 글

PyCharm - comprehension  (0) 2022.05.17
PyCharm - 성적처리 프로그램  (0) 2022.05.14
PyCharm - Tuple, Set  (0) 2022.05.12
PyCharm - list  (0) 2022.05.11
PyCharm - function  (0) 2022.05.11