인프런 커뮤니티 질문&답변

romromseo님의 프로필 이미지

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

퀴즈 #4

.remove로 푼걸 질문하려 합니다

20.07.02 15:33 작성

·

136

0

from random import *
a = range (1,21)
print(a)
a = list(a)
shuffle(a)
print (a, "\n로 셔플완료")
ch = (sample (a, 1))
print ("----축하합니다----\n치킨 당첨자" , ch)
a.remove(ch[0])
cof = (sample (a , 3))
print ("커피 당첨자" , cof , "\n----축하합니다----")
a.remove(cof[0])
a.remove(cof[1])
a.remove(cof[2])
print ("남은 당첨자들" , a)
아주 유용한 강의였습니다
저는 이렇게 풀었는데요, list.remove(x[n])를 사용하면 항상 하나만 제거할수
있더라고요. remove 로는 그 변수에 들어있는것들 모두와 같은 값을 리스트에서
제거할수 없는건가요? 만약 아니라면 다수를 한번에 remove로 제거하는 방법이
궁금합니다.
a.remove(cof[0:3]) ValueError: list.remove(x): x not in list
항상 이렇게 에러가 나옵니다.

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

2020. 07. 07. 11:07

한 줄 for 를 응용하는 방법이 있겠네요 ^^

때로는 리스트를 조작하는 것보다 새로운 리스트를 만드시는 게 좋기도 하답니다.

from random import *

a = range (1,21)

print(a)

a = list(a)

shuffle(a)

print (a, "\n로 셔플완료")

ch = (sample (a, 1))

print ("----축하합니다----\n치킨 당첨자" , ch)

a.remove(ch[0])

cof = (sample (a , 3))

print ("커피 당첨자" , cof , "\n----축하합니다----")

a = [i for i in a if i not in cof] # cof 리스트에 있는 항목을 제외한 새로운 리스트 생성

print ("남은 당첨자들" , a)