상세 컨텐츠

본문 제목

파이썬 응용 실습1(리스트->딕셔너리->딕셔너리형리스트)

기타정보

by 김일국 2022. 7. 3. 09:01

본문

파이썬프로그램 응용 보수교육에서 실습한 내용에서 미션사항이 있었다.(아래)

순서1. 교육용 샘플: 회원관리에 리스트 데이터형을 함수형으로 변경 한 후 딕셔너리 데이터형으로 CRUD하기 이다.(아래)

기본형:

friends_.py
0.00MB

- 아래 리스트 데이터확인 ['kim1','kim2']

함수형 딕셔너리데이터형{이름key:전화번호value, 이름key:전화번호value,}데이터로변경):

friends_func.py
0.00MB

- 아래 딕셔너리 데이터확인 {'kim1':'111-1111', 'kim2':'222-2222'}

순서2. 위 함수형 딕셔너리 데이터로 변경 한 소스를 딕셔너리형 리스트 데이터형으로 CRUD하기 이다.(아래)

딕셔너리형[{이름key:전화번호value, 이름key:전화번호value,}]

friends_dict.py
0.00MB

(아래 딕셔너리형 리스트 데이터확인 [{'kim1':'111-1111', 'kim2':'222-2222'}])

순서3. 딕셔너리 데이터형으로 변경 한 소스를 딕셔너리형 리스트 인데 일명 JsonArray(자바의 List<HashMap>형태)로 CRUD하기 이다.(아래)

딕셔너리 리스트형(JsonArray형): 현재 제일 많이 사용

friends_list_jsonarray.py
0.00MB

아래 딕셔너리형 리스트 데이터 JsonArray 형태 [{'name':'kim1','phone':'111-1111'}, {'name':'kim2','phone':'222-2222'}]

최종소스

menu = 0
friends = []
##2차원 리스트로 변경은 미션
def f_display():
    print(friends)

def f_menu():
    print("--------------------")
    print("1. 친구 리스트 출력")
    print("2. 친구추가")
    print("3. 친구삭제")
    print("4. 이름->전화번호변경")
    print("9. 종료")
    print("--------------------")
    while True:
        try:
            menu = int(input("메뉴를 선택하시오: "))
            break
        except ValueError:
            print("입력값이 숫자가 아닙니다.")
    return menu

def f_input():
    friend = {}
    name = input("이름을 입력하시오: ")
    #friends.append(name)
    phone = input("전화번호를 입력하세요: ")
    friend['name'] = name
    friend['phone'] = phone
    friends.append(friend)

def f_modify():
    old_name = input("변경하고 싶은 이름을 입력하시오: ")
    count = 0
    for index in range(len(friends)):
        if old_name in friends[index]['name']:
            #index = friends.index(old_name)
            #new_name = input("새로운 이름을 입력하시오: ")
            #friends[index] = new_name
            new_phone = input("새로운 전화번호를 입력하시오: ")
            friends[index]['phone'] = new_phone
            count = 1
            break
        #else:
    if count == 0:
        print("이름이 발견되지 않았음")

def f_delete():
    friend = {}
    del_name = input("삭제하고 싶은 이름을 입력하시오:  ")
    count = 0
    for index in range(len(friends)):
        if del_name in friends[index]['name']:
            friends.pop(index)
            count = 1
            break
            #friends.remove(del_name) 
        #else:
    if count == 0:
        print("이름이 발견되지 않았음")

while True: 
    menu = f_menu();
    if menu == 1:
        f_display();
    elif  menu== 2:
        f_input()
    elif  menu == 3:
        f_delete()
    elif  menu == 4:
        f_modify()
    elif menu == 9:
        break

 

참고로, 파이썬 개발툴인 IDLE(Integration Development and Learning Environment)은 아래 오픈 소스에서 설치한다.

관련글 더보기

댓글 영역