eoranged 01.10.2012 11:41 Pidgin

a = [[]] * 5
a[2].append(1)
a[4].append(13)

Угадайте какой будет результат и почему.
Желательно засовывать этот код в интерпретатор уже после того, как ответите на вопрос :)

1. Velvet-Bird 01.10.2012 12:14 gay

Он скопирует ссылку на пустой список пять раз, а потом зааппендит в него два числа?

2. eorangedVelvet-Bird /1 01.10.2012 12:43 Pidgin

Да.

3. Velvet-Birdeoranged /2 01.10.2012 12:43 gay

Где мой приз?

4. Rejjin 01.10.2012 13:18 tkabber

113?

5. Rejjin 01.10.2012 13:20 tkabber

Не-не, 113 в 5-й степени и разделить на PI

6. Velvet-BirdRejjin /5 01.10.2012 13:20 gay

Наркотики принял?

7. RejjinVelvet-Bird /6 01.10.2012 13:30 tkabber

Не правильно? Тогда умножить.

8. Velvet-BirdRejjin /7 01.10.2012 13:38 gay

[[1, 13], [1, 13], [1, 13], [1, 13], [1, 13]]

9. 238328 01.10.2012 14:51

Согласен, что даже в таком простом примере всё запутано. Хер поймёшь, что за синтаксис, копируются ли ссылки или создаются новые объекты(хотя бывалому говноеду должно быть очевидно), да и вообще...

СТОЙ, ТЫ ДЕЛАЕШЬ ВСЁ НЕ ПИТОНИЧНО!
ПРАВИЛЬНО БУДЕТ СДЕЛАТЬ ЧЕРЕЗ ЛИСТ КОМПРИХЕНШН!

а вообще не надо просто пытаться изменить содержимое контейнера через методы содержимого объекта

10. eoranged238328 /9 01.10.2012 15:01 Pidgin

Я сразу переделал через list comprehention, но первые несколько минут было ВНЕЗАПНО.
> а вообще не надо просто пытаться изменить содержимое контейнера через методы содержимого объекта
а как тогда? Если создавать новые объекты, то питон превратится в яву и будет не только тормозить, но и жрать память.

11. 238328eoranged /10 01.10.2012 15:01 27462061521349100553197464

присваиванием по индексу внешнего контейнера :cf:

12. eoranged238328 /11 01.10.2012 15:02 Pidgin

Вот я и говорю: будет ЖАВА.

13. 238328eoranged /12 01.10.2012 15:03 27462061521349100553197464

а чего ты хочешь? Явного какого-то разделения действия с объектом или с ссылкой?

14. Rejjineoranged /12 01.10.2012 15:03 tkabber

Сосните. Java няшная.

15. eoranged238328 /13 01.10.2012 15:04 Pidgin

Всё просто: хочу, чтобы лишняя память не жралась, COW и все дела.

16. 238328Rejjin /14 01.10.2012 15:04

она не может быть няшной, она general-purpose

17. 238328eoranged /15 01.10.2012 15:05 27462061521349100553197464

тогда cpython не для твоей задачи

18. eoranged238328 /17 01.10.2012 15:07 Pidgin

PyPy?

19. 238328eoranged /18 01.10.2012 15:07 27462061521349100553197464

да что угодно, я откуда знаю, что именно лучше в

20. eoranged238328 /19 01.10.2012 16:05 Pidgin

Ну и не пизди тогда, что не подходит.

21. 238328eoranged /20 01.10.2012 19:19 27462061521349100553197464

да у тебя же бахтияр!

Do you really want to delete ?