{딕셔너리}
>>> dict = {"사과":5000, "바나나":3000}
>>> dict
{'사과': 5000, '바나나': 3000}
>>> dict["사과"]
5000
>>> dict["바나나"]
3000
>>> dict["없음"]
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: '없음'
>>> dict["사과"] = 7000
>>> dict
{'사과': 7000, '바나나': 3000}
>>> dict["오렌지"] = 9000
>>> dict
{'사과': 7000, '바나나': 3000, '오렌지': 9000}
>>> del dict["사과"]
>>> dict
{'바나나': 3000, '오렌지': 9000}
>>> del dict["없음"]
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: '없음'
In:
dict = {"바나나": 3000, "오렌지": 9000}
for i in dict:
print(i, dict[i])
Out:
바나나 3000
오렌지 9000
items를 이용해서 같은 프로그램을 다음과 같이 작성할 수도 있다.
dict = {"바나나": 3000, "오렌지": 9000}
for key, value in dict.items():
print(key, value)
items가 딕셔너리의 key와 value를 리턴함을 알 수 있다.
프로그램 설계
최빈값 구하기
In:
def load_data(file):
f = open(file, "rt", encoding="utf-8")
lt_num_data = {}
for i in range(0, 20):
temp = []
for j in f.readline().split():
temp.append(int(j))
# key: i + 회차
lt_num_data[str(i+1) + "회차"] = temp
f.close()
return lt_num_data
def count(data):
result = {}
for key, value in data.items():
for i in value:
if i not in result:
result[i] = 1
else:
result[i] += 1
return result
def get_mode(count):
number = 0
mode = 0
for key, value in count.items():
if mode < value:
number = key
mode = value
return number, mode
data = load_data("C:/Users/Public/PythonStudy/test.txt")
# print("데이터 가져오기 성공:", data)
count_result = count(data)
# print("count 결과 값:", count_result)
result_number, result_mode = get_mode(count_result)
# print("숫자 " + str(result_number)+"이(가) " + str(result_mode)+"번 당첨되었습니다.")
# 소팅 sorting
for i in sorted(count_result):
print(i, ":", count_result[i])
Out:
1 : 1
2 : 4
3 : 3
4 : 3
6 : 3
7 : 2
8 : 1
9 : 4
10 : 2
11 : 2
12 : 2
13 : 2
14 : 3
15 : 1
16 : 5
17 : 2
18 : 1
19 : 3
20 : 1
21 : 3
22 : 1
23 : 3
24 : 2
25 : 6
26 : 2
27 : 3
29 : 2
30 : 5
31 : 4
32 : 3
33 : 3
34 : 1
35 : 1
36 : 2
37 : 7
38 : 3
39 : 4
40 : 8
41 : 3
42 : 6
43 : 1
44 : 1
45 : 1
예외 처리
파일 경로를 잘못 입력한 경우
In:
try:
f = open("C:/Users/Public/PythonStudy/tes.txt", 'rt', encoding="utf-8")
except OSError as e:
print(e)
Out:
[Errno 2] No such file or directory: 'C:/Users/Public/PythonStudy/tes.txt'
값을 잘못 전달한 경우
In:
try:
f = open("C:/Users/Public/PythonStudy/tes.txt", 'ert', encoding="utf-8")
except OSError as e:
print(e)
except ValueError as e:
print(e)
Out:
invalid mode: 'ert'
try:
f = open("C:/Users/Public/PythonStudy/test.txt", 'rt', encoding="utf-8")
except OSError as e:
print(e)
except ValueError as e:
print(e)
finally:
print("항상 출력됩니다")
finally 문은 try 문에서 에러가 발생하든 발생하지 않든 실행된다.
'파이썬 Python' 카테고리의 다른 글
초급 9 XML (0) | 2021.01.15 |
---|---|
초급 8 REST, JSON (0) | 2021.01.14 |
초급 6 파일 입출력, 변수 범위 (0) | 2021.01.13 |
초급 5 문자열 (0) | 2021.01.13 |
초급 4 함수 정의, 문자열 (0) | 2021.01.13 |