• Почему is работает не так, как ожидается?

    ElonMask2
    @ElonMask2
    Autor of Tesla Machini and SpaxeX
    Ладно
    a = 'af' Инициализируем ПЕРВУЮ переменную А = АФ  идентиф=1
    b = 'a' Инициализируем ВТОРУЮ переменную Б= А     идентиф=2
    b += 'f' Инициализируем ТРЕТЬЮ переменную Б = А + Ф  идентиф=3
    # А все почему? Строка - НЕИЗМЕНЯЕМЫЙ ТИП
    print(a is b)
    >>> False
    a = 5
    b = 2
    b += 3
    # Тоже самое но, в питоне числа до 255 КЕШИРУЮТСЯ и 50 is 50 и 255 is 255
    print(a is b)
    >>> True


    А тут,
    a = 'af'       #Инициализируем ПЕРВУЮ (ОНА ИДЕТ В КЕШ) А = АФ
    b = 'a' + 'f'  #Инициализируем ВТОРУЮ интерпретатор не тупой и Б = ТОЖЕ АФ (а так как аф есть в кеше Б получает ссылку на ту же память)
    
    print(a is b)
    >>> True


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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе это скорее всего не надо делать. Чтоб из элемента массива что-то извлечь - надо просто больше туда добавлять. Например вместо атома добавить tuple.

    >>> a = (-12345, 'a')
    >>> p = [a]
    >>> print(p[0][1])
    a
    Ответ написан
    4 комментария