[프로그래밍 언어]/python

Python 이중 리스트 입력/삭제/추가/검색/정렬/최대,최소

우당탕탕 개발 일지 2024. 5. 14. 09:26

안녕하세요. 우당탕탕 개발일지 입니다. 학교 과제로 나온 파이썬 이중 리스트 관련한 문제를 포스트 하려고 합니다.

언어는 python이고 Visual Stubio Code를 사용했습니다. 

 

▶문제 

이중 리스트를 이용하여 회원의 성명, 신장, 체중 관리 프로그램 작성(함수 사용)

  • 회원 정보 입력 기능 (이중 리스트 사용)
  • 회원정보 검색 기능
  • 정렬 기능(회원명, 신장, 체중)
  • 찾기 기능(최고, 최저, (이상, 이하) 신장 또는 체중을 가진 회원 정보 검색)
  • 회원 정보(회원명, 신장, 체중) 추가  및 삭제 기능

 

 

해결과정

▷리스트 생성

member_list=[]

 

▷회원 정보 입력 기능

#입력 기능
def data_input():
    end_Q='' 
    while end_Q!='y':
        name=input("회원님의 이름을 입력해주세요:")
        weight=int(input("회원님의 몸무게를 입력하세요.: "))
    
        
        member_list.append([name,weight])

        end_Q=input("입력을 끝낼까요?(y/n):")
        
data_input()#함수 호출

 

 

▷회원 정보 삭제 기능

#삭제 기능(인덱스로 삭제)
def data_del():
    del_Q=''
    del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")

    while del_Q!='n':
        print(member_list)
        
        member_del=int(input("삭제하고 싶은 회원님이 몇번째에 있는지를 입력해주세요:"))
        
        if member_del>0 and member_del <=len(member_list):
            member_list.pop(member_del-1)  #pop()
            print(member_list)
            
        else:
            print("잘못된 입력입니다.")

        del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")
            
            
data_del() #함수 호출

 

 

▷회원 정보 추가 기능

#추가 기능
def data_add():
    add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
    while add_Q!='n':
        name1=input("회원님의 이름을 입력해주세요:")
        weight1=int(input("회원님의 몸무게를 입력하세요.: "))
        
        member_list.append([name1,weight1])

        add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
        print(member_list)

data_add() #함수 호출

 

 

▷회원 정보 정렬 기능

#sort 안쓰고 버블정렬
def data_bubble_sort():
    member_len=len(member_list)
    for x in range(member_len):
        for y in range(0, member_len - 1):
            if member_list[y][1] > member_list[y + 1][1]:
                temp = member_list[y]
                member_list[y] = member_list[y + 1]
                member_list[y + 1] = temp

	print('몸무가 작은 순서로 정렬',member_list)
    
    
 
 data_bubble_sort() #함수호출

 

 

▷회원 정보 최대,최소 찾기 기능

#최대,최저 몸무게 출력 
def max_min_out():
    data_bubble_sort() 
    
    last_index=len(member_list)-1
    print("최대 몸무게 회원 정보:", member_list[last_index])
    print("최저 몸무게 회원 정보:", member_list[0])


max_min_out() #함수호출

 

 

▷회원 정보 검색 기능

#특정 몸무게 출력(인덱스 이용)
def data_some():
    
    s_out=input("특정인만 출력하고 싶으십니까?(y/n):")
    if s_out=='y':
        print(member_list)
        s_who_index = input("출력하고 싶은 회원님이 몇번째에 있는지 모두 입력해 주세요(공백 구분): ").split()  #split()
        for i in s_who_index:
            s_who= int(i-1)
            if s_who >=0 and s_who < len(member_list):
                print("회원의 정보:", member_list[s_who])
            else:
                print("회원 정보가 존재하지 않습니다.")
    else:
        print(member_list)

data_some() #함수호출

 

 

 


전체코드

member_list=[]

#입력 기능
def data_input():
    end_Q='' 
    while end_Q!='y':
        name=input("회원님의 이름을 입력해주세요:")
        weight=int(input("회원님의 몸무게를 입력하세요.: "))
    
        
        member_list.append([name,weight])

        end_Q=input("입력을 끝낼까요?(y/n):") 
    
    

#삭제 기능(인덱스로 삭제)
def data_del():
    del_Q=''
    del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")

    while del_Q!='n':
        print(member_list)
        
        member_del=int(input("삭제하고 싶은 회원님이 몇번째에 있는지를 입력해주세요:"))
        
        if member_del>0 and member_del <=len(member_list):
            member_list.pop(member_del-1)  #pop()
            print(member_list)
            
        else:
            print("잘못된 입력입니다.")

        del_Q=input("삭제 하고 싶은 데이터가 있으신가요?(y/n):")
            

#추가 기능
def data_add():
    add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
    while add_Q!='n':
        name1=input("회원님의 이름을 입력해주세요:")
        weight1=int(input("회원님의 몸무게를 입력하세요.: "))
        
        member_list.append([name1,weight1])

        add_Q=input("추가 하고 싶은 데이터가 있으신가요?(y/n):")
        print(member_list)

#sort함수 안쓰고 버블정렬_오름차순 정렬
def data_bubble_sort():
    member_len=len(member_list)
    for x in range(member_len):
        for y in range(0, member_len - 1):
            if member_list[y][1] > member_list[y + 1][1]:
                temp = member_list[y]
                member_list[y] = member_list[y + 1]
                member_list[y + 1] = temp

	print('몸무가 작은 순서로 정렬',member_list)

#최대,최저 몸무게 출력 
def max_min_out():
    data_bubble_sort() 
    
    last_index=len(member_list)-1
    print("최대 몸무게 회원 정보:", member_list[last_index])  #정렬한 뒤 맨 마지막 인덱스==최대
    print("최저 몸무게 회원 정보:", member_list[0]) #정렬한 뒤 처음 인덱스 ==최소


#특정 몸무게 출력(인덱스 이용)
def data_some():
    
    s_out=input("특정인만 출력하고 싶으십니까?(y/n):")
    if s_out=='y':
        print(member_list)
        s_who_index = input("출력하고 싶은 회원님이 몇번째에 있는지 모두 입력해 주세요(공백 구분): ").split()  #split()
        for i in s_who_index:
            s_who= int(i-1)
            if s_who >=0 and s_who < len(member_list):
                print("회원의 정보:", member_list[s_who])
            else:
                print("회원 정보가 존재하지 않습니다.")
    else:
        print(member_list)




data_input()
data_add()
data_del()
data_bubble_sort()
data_some()
max_min_out()
728x90