본문 바로가기
PROGRAMING📚/Python📑

파이썬(Python) 리스트를 이용한 삽입, 삭제 응용하기

별찌루 2022. 4. 14.
728x90
반응형

<리스트 관련 함수>

 

  • append :리스트의 마지막 위치에 새로운 원소를 추가
  • insert :리스트의 원하는 위치에 새로운 원소를 추가
  • remove: 지정한 원소 중 리스트에서 첫 번째로 나오는 원소 제거
  • extend :원래의 리스트에 새로운 리스트의 원소를 추가
  • count :리스트에 포함된 특정 원소의 개수를 알려줌
  • index :리스트에 지정한 원소가 있다면 그 원소의 위치를 알림
  • sort :리스트의 원소를 순서대로 정렬
  • reverse: 리스트의 원소를 역순으로 뒤집어 줌
  • sort() :리스트 원소를 순서대로 정렬
  • reverse() : 리스트에서 저장된 내용을 역순으로 출력(정렬 개념이 아님)

(실습) 작업을 선택하여, 등록, 검색, 삭제가 가능하도록 만든다.

words =[]

while 1:
    num =int(input("원하는 작업을 선택십시오. >> \n 1. 등록\n 2. 검색\n 3. 삭제\n 4. 종료"))
    if num ==1 :
        # 등록
        for i in range(5):
            user = input("{}번째 단어를 등록하세요 >>".format(i + 1))
            words.append(user)
    elif num==2 :
        # 검색
        ser = input("원하는 단어를 검색하세요 >>")
        if ser in words:
            loc = words.index(ser) + 1
            print("당신이 검색한 것은 {} 입니다.".format(loc))
        else:
            print("해당하는 단어가 없습니다.")
            words.append(ser)
    elif num ==3 :
        # 삭제
        de = input("삭제를 원하는 단어를 입력해주세요.>>")
        if de in words:
            loc = words.index(de) + 1
            print("{}번쨰 단어를 삭제합니다.".format(loc))
        else:
            print("해당하는 단어가 없습니다.")

    elif num ==4:
        print("종료합니다.")
        break
    else :
        print("다시 입력하세요")

 

#검색 할 때, 인덱스를 이용하여 리스트 검색하기

for i in range(len(words)):
     if ser == words[i]:
         print(i)
     else:
         print("해당 값 없음")

(실습) max, min, sum함수 이용하기

 

<오류발생>

temp = [27, 29, 28, 30, 31, 32, 31]

print("최저기온 >>", min(temp))
print("최고기온 >>", max(temp))
print("평균기온 %.3f>>" % (sum(temp) / len(temp)))

print(temp.sort()) 사용 불가능

 

---------------------------------------

<변경>

temp = [27, 29, 28, 30, 31, 32, 31]

print("최저기온 >>", min(temp))
print("최고기온 >>", max(temp))
print("평균기온 %.3f>>" % (sum(temp) / len(temp)))

temp.sort()  # temp 리스트 내용을 오름차순 정렬

print(temp)

a = [3, 2, 7, 8, 21, 5, 1]
a.reverse() 
print(a)

 

 

 

(실습)

scList = []

for i in range(5):
    sc = int(input("성적을 입력하세요 >>"))
    scList.append(sc)

total = sum(scList)
avg = sum(scList) / len(scList)

print("성적의 합계 >>", total)
print("성적의 평균 >>", avg)

scList.append(total)
scList.append(avg)

print(scList)    # print("각 성적 {}, 합계 {}, 평균 {}".format(scList , total, avg)) 이렇게 출력하지 않아도 된다.
scList.insert(0, input("이름을 입력하세요 >> "))    # 변수를 사용하지 않고 함수 안에 넣어 받아서 사용할 수 있음

print(scList)

(실습 )

pe = [];
total = 0;

for i in range(3): #학생수 3명
    a = []
    name = input("이름을 입력하세요>>")
    for j in range(1): #이름, 과목 3과목 입력 받는 반복문
        kor = int(input("국어>>"))
        mat = int(input("수학>>"))
        eng = int(input("영어>>"))
        a.append(name)
        a.append(kor)
        a.append(mat)
        a.append(eng)
        total += kor + mat +eng
        a.append(total)
        avg = total / 3
        a.append("%.2f"%avg)
        pe.append(a)

print("각 학생들의 점수는?\n",pe)
print("학생들의 점수 합게는?",total)
print("반 평균 점수는?%.2f"%(avg/len(pe)))

 

(+추가) 평균 90이상 일 경우, '합격' 아니면 '재수강' 을 리스트에 삽입하기

 

pe = []
total = 0

for i in range(3): #학생수 3명
    a = []
    name = input("이름을 입력하세요>>")
    for j in range(1): #이름, 과목 3과목 입력 받는 반복문
        kor = int(input("국어>>"))
        mat = int(input("수학>>"))
        eng = int(input("영어>>"))

        a.append(name)
        a.append(kor)
        a.append(mat)
        a.append(eng)
        
        total += kor + mat +eng
        a.append(total)

        avg = total / 3
        a.append(int(avg))
        pe.append(a)
    total = 0



for i in range(3):
    if pe[i][5] >= 90:
        pe[i].append("합격")
    else :
        pe[i].append("재수강")

print(pe)

 

 

 

728x90
반응형

댓글