LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Это говорит о том что list не имеет хеша

А tuple не имеет append, но о чем это говорит, только о том что в list не сделали hash для Python?

И подтвердили мои слова о том что tuple быстрее list.

Это какое то очень слабое различие, думал там 2x и более, я решил отследить до CPython что происходит между [i, j, k] vs (i, j, k) и увидел что они создаются практически идентично, для списка тоже выделяется 3 элемента сразу, и значения заполняются в С цикле.

Реальная разница есть в константных значениях, [1, 2, 3] vs (1, 2, 3), компилятор Python в таком случае возвращает всегда один Tuple, но это работает только в пределах одной функции.

>>> def test(): return (1, 2, 3)
>>> test() is test()
True

Исправление MOPKOBKA, :

Это говорит о том что list не имеет хеша

А tuple не имеет append, но о чем это говорит, только о том что в list не сделали hash для Python?

И подтвердили мои слова о том что tuple быстрее list.

Это какое то очень слабое различие, я решил отследить до CPython что происходит между [i, j, k] vs (i, j, k) и увидел что они создаются практически идентично, для списка тоже выделяется 3 элемента сразу, и значения заполняются в С цикле.

Реальная разница есть в константных значениях, [1, 2, 3] vs (1, 2, 3), компилятор Python в таком случае возвращает всегда один Tuple, но это работает только в пределах одной функции.

>>> def test(): return (1, 2, 3)
>>> test() is test()
True

Исходная версия MOPKOBKA, :

Это говорит о том что list не имеет хеша

А tuple не имеет append, но о чем это говорит, только о том что в list не сделали hash для Python?

И подтвердили мои слова о том что tuple быстрее list.

Это какое то очень слабое различие, я решил отследить до CPython что происходит между [i, j, k] vs (i, j, k) и увидел что они создаются практически идентично, для списка тоже выделяется 3 элемента сразу, и значения заполняются в С цикле.

Реальная разница есть в константных значениях, [1, 2, 3] vs (1, 2, 3), компилятор Python в таком случае возвращает всегда один Tuple.

>>> def test(): return (1, 2, 3)
>>> test() is test()
True