[2023.11.20] 자료구조 3_리스트 아이템 삭제(pop, remove)

하은·2023년 11월 20일
0
post-custom-banner

012. 리스트의 아이템 삭제

- 마지막 인덱스 아이템 삭제

- pop()함수를 이용하면 마지막 인덱스에 해당하는 아이템을 삭제할 수 있다.

- pop(n)함수를 이용하면 n인덱스에 해당하는 아이템을 삭제할 수 있다

예) pop(3): index[3]에 해당하는 데이터가 없어짐

students = ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']
print('students: {}'.format(students))
print('students length: {}'.format(len(students)))

rValue = students.pop()
print('students: {}'.format(students))
print('students length: {}'.format(len(students)))
print('rValue: {}'.format(rValue))


students = ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']

rrValue = students.pop(3)
print('students: {}'.format(students))
print('students length: {}'.format(len(students)))
print('rValue: {}'.format(rrValue))

students: ['홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동']
students length: 6

students: ['홍길동', '박찬호', '이용규', '박승철', '김지은']
students length: 5
rValue: 강호동

students: ['홍길동', '박찬호', '이용규', '김지은', '강호동']
students length: 5
rValue: 박승철

실습) 다음은 어떤 체조점수의 점수표다. 점수표에서 최저, 최고점수를 제거한 평점, 합계를 구해보자

playerScores = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0]
print('playerScores = {}'.format(playerScores))

minScore = 0; maxScore = 0
minScoreIdx = 0; maxScoreIdx = 0

for idx, score in enumerate(playerScores): #인덱스와 value를 다 파악가능
    if idx == 0 or minScore > score:
        minScoreIdx = idx
        minScore = score

print('minScore: {}, minScoreIdx: {}'.format(minScore, minScoreIdx))
playerScores.pop(minScoreIdx)

for idx, score in enumerate(playerScores):
    if maxScore < score:
        maxScoreIdx = idx
        maxScore = score
print('maxScore: {}, maxScoreIdx: {}'.format(maxScore, maxScoreIdx))
playerScores.pop(maxScoreIdx)

print('playerScores = {}'.format(playerScores))

-->

playerScores = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0]
minScore: 8.8, minScoreIdx: 4
maxScore: 9.8, maxScoreIdx: 3
playerScores = [9.5, 8.9, 9.2, 9.0]

013. 리스트의 특정 아이템 삭제

- 특정 아이템 삭제

- remove()함수를 이용하면 특정 아이템을 삭제할 수 있다

콕 찝어서 삭제 가능

students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
print(students)

students.remove('박찬호')
print(students)

-->

['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은']
['홍길동', '이용규', '강호동', '박승철', '김지은']

- remove()는 한 개의 아이템만 삭제 가능하다. 만약 삭제하려는 데이터가 두개 이상이라면 while문을 이용하자

students = ['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
print(students)

''''
students.remove('강호동')
print(students)

print('강호동' in students) #True
'''
#while은 조건식이고 T, F에 따라 굴러감
#리스트 안에 강호동이 (in==) 있으면 T
while '강호동' in students:
    students.remove('강호동') #없을 때까지

print(students)

-->
결과: 둘 다 사라짐
['홍길동', '박찬호', '이용규', '강호동', '박승철', '김지은', '강호동']
['홍길동', '박찬호', '이용규', '박승철', '김지은']

실습) 아래의 오늘 일정표에서 사용자가 입력한 일정을 삭제하는 프로그램을 만들어보자

myList = ['마케팅 회의', '회의록 정리', '점심 약속', '월간 업무 보고', '치과 방문', '마트 장보기']
print('일정: {}'.format(myList))

removeItem = input('삭제 대상 입력: ')
myList.remove(removeItem)
print('일정: {}'.format(myList))

-->

일정: ['마케팅 회의', '회의록 정리', '점심 약속', '월간 업무 보고', '치과 방문', '마트 장보기']
삭제 대상 입력: 점심 약속
일정: ['마케팅 회의', '회의록 정리', '월간 업무 보고', '치과 방문', '마트 장보기']

실습) 아래 시험 과목표에서 사용자가 입력한 과목을 삭제하는 프로그램을 만들어보자

subjects = ['국어', '영어', '수학', '과학', '국사']
print('시험과목표: {}'.format(subjects))

removeSubject = input('삭제 과목명 입력: ')
while removeSubject in subjects:
    subjects.remove(removeSubject)

print('시험과목표: {}'.format(subjects))

-->

시험과목표: ['국어', '영어', '수학', '과학', '국사']
삭제 과목명 입력: 영어
시험과목표: ['국어', '수학', '과학', '국사']

post-custom-banner

0개의 댓글