История изменений
Исправление 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