1

Есть кусок кода:

def remitem(mylist):
        mylist2=mylist
        for item in mylist:
            if (mylist.count(item)==1):
                mylist2.remove(item)
        return mylist2
    print remitem([5, 6, 7, 8, 9])

Скажите, пожалуйста, почему он возвращает [6,8] , цикл то идет по одному списку, а удаляет из другого - по логике он же должен возвращать []?

jfs
  • 52,361
Asmodey
  • 13
  • 2
  • 4

1 Answers1

4

потому что это один и тот же список, т.к. это mutable (можешь почитать подробнее, поискав в интернете по этому слову)

если тебе нужна копия этого списка -- воспользуйся командой copy или mylist2=mylist[:]

actionless
  • 1,371
  • 8
  • 7