Форум сайта python.su
4kpt_IV
Ты не вполне понял. Во-первых, не нужно само преобразование (которое лишняя операция) в большинстве случаев. Я придумал только один юзкейс - использование кортежа как ключа словаря. Во-вторых, операция преобразования элементарна. Перемещения данных при этом не производится, память не выделяется. В твоем примере buffer += i на каждой итерации происходит выделение новой памяти и копирование в нее содержимого кортежа, что более затратно чем преобразование из списка в кортеж. Ну а добавление в конец списка, как понимаешь, тоже почти О(1). То есть по сути операции с кортежами можно сказать совсем не нужны, они безболезненно заменяются на операции со списками на небольшом наборе данных, а на большом наборе операции со списками безальтернативны ввиду в разы меньшей сложности.
Во-вторых, я не против того, что сам по себе пустой кортеж имеет право на существование. Это можно было бы реализовать вот так tuple(), но пустые скобки в питоне крайне противоречивая ситуация, потому что вот это кортеж
a = ()
a = (1)
d = {1}
d = {}
Отредактировано FishHook (Янв. 7, 2017 11:42:30)
Офлайн
FishHook
То есть по сути операции с кортежами можно сказать совсем не нужны, они безболезненно заменяются на операции со списками на небольшом наборе данных, а на большом наборе операции со списками безальтернативны ввиду в разы меньшей сложности.
FishHook
это какая-то очень некрасивая гнилая вишенка на торте. Когда мы в основном имеем логичный последовательный синтаксис, но вдруг на ровном месте такие кривые исключения. Для пустых значений базовых структур вполне можно было бы обойтись без минимализма и создавать объект как любой другой: list(), dict(), set(), tuple()
Отредактировано 4kpt_IV (Янв. 7, 2017 12:10:55)
Офлайн
> Хотя, по идее type вообще не должен был всплывать - что указывало бы на динамическую типизацию (отличие Python от других языков).
> Про динамическую типизацию ясно. Однако в данном случае произошла ошибка с примером: пример должен был показать динамический тип переменной а. Что делать?
У тебя переменная “a” меняет свой тип: сначала это число, затем строка, а потом кортеж. Это и есть динамическая типизация.
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
Отредактировано Rodegast (Янв. 7, 2017 14:30:06)
Офлайн
я у же реально по вопросам вижу кто читает лутца а кто задает тупые вопросы
Офлайн
Вот я за свой коммент получил от топик стартера минус с комментарием
“Неинформативность. Хамское поведение”
Камрад - когда ты прочитаешь лутца и осознаешь - ты сам себе сюда ответишь так же…
Офлайн