Форум сайта python.su
0
Обясните пожалуйста в чом разница
Есть большой список (list) из елементов. Я всегда его очищал так -
List = []
List[:] = []
Отредактировано alexeyvanzhula (Май 14, 2012 23:18:32)
Офлайн
52
alexeyvanzhula
Обясните пожалуйста в чом разница
Есть большой список (list) из елементов. Я всегда его очищал так - List =
Но с недавних пор в нете увидел что удаляют так - List =
Не могу вехать в чем разница. По расходу памяти проверял - вроди разнецы нет…
Офлайн
13
Форум сожрал то, что было в квадратных скобках. Используйте тег code и будет вам счастье.
Офлайн
568
a=5 l1=[a]*5 l2=l1 l1[:]=[] print l2 ### a=5 l1=[a]*5 l2=l1 l1=[] print l2
[] [5, 5, 5, 5, 5]
Отредактировано FishHook (Май 15, 2012 05:37:35)
Офлайн
0
то есть обычные переменные например int, при присваивании знаком ‘=’ работают как ссылка - a=b
а список -
l2=l1
l2=l1[:]
Отредактировано alexeyvanzhula (Май 15, 2012 07:55:24)
Офлайн
568
alexeyvanzhula
то есть обычные переменные например int, при присваивании знаком ‘=’ работают как ссылка - a=b
а список -- как копия? Тогда зачем писатьl2=l1- если мы хотим копию списка, а не ссылку на него?l2=l1[:]
l=[1,2,3,4,5] l2=l # ССЫЛКА l[0]=9 print l2 l=[1,2,3,4,5] l2=l[:] # КОПИЯ l[0]=9 print l2
[9, 2, 3, 4, 5] [1, 2, 3, 4, 5]
Офлайн
0
FishHookalexeyvanzhula
то есть обычные переменные например int, при присваивании знаком ‘=’ работают как ссылка - a=b
а список -- как копия? Тогда зачем писатьl2=l1- если мы хотим копию списка, а не ссылку на него?l2=l1[:]l=[1,2,3,4,5] l2=l # ССЫЛКА l[0]=9 print l2 l=[1,2,3,4,5] l2=l[:] # КОПИЯ l[0]=9 print l2[9, 2, 3, 4, 5] [1, 2, 3, 4, 5]
l1[:]=[]
Отредактировано alexeyvanzhula (Май 15, 2012 10:50:47)
Офлайн
568
alexeyvanzhulaДа нет же.
Слева судя синтаксису питона создаеться копия которой сразу же присваиваеться пустота
l=[1,2,3,4,5] l=[]
l=[1,2,3,4,5] l[:]=[]
l=[1,2,3,4,5] l[ 0 : 5 ]=[3,60,30,20,10]
Отредактировано FishHook (Май 15, 2012 11:15:04)
Офлайн
568
Понятней будет если поймёте, что
List[ : ]
List[ 0 : len(List) ]
>>> l=[1,2,3,4,5,6,7,8,9,10] >>> l [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> l[3:4]=[100,100,100,100] >>> l [1, 2, 3, 100, 100, 100, 100, 5, 6, 7, 8, 9, 10] >>>
l[ : ]=[]
Офлайн
15
Типа потребляет меньше ресурсов?
Офлайн