Курс Python → Оптимизация интернирования строк

Строки в Python могут быть сложными и важно понимать, как работает интерпретатор при работе с ними. Например, когда вы присваиваете значения «wtf!» переменным a и b в одной строке кода, интерпретатор создает новый объект строки «wtf!» и затем обе переменные одновременно ссылаются на этот объект. Однако, если вы сделаете это в отдельных строках, интерпретатор не будет знать, что уже существует объект «wtf!» в памяти, так как строка неявно интернирована, что является оптимизацией во время компиляции.

Оптимизация интернирования строк не применяется к версиям CPython 3.7.x, что важно учитывать при разработке кода. Это может повлиять на производительность программы, особенно если вам нужно много раз создавать и работать с одинаковыми строками. Поэтому, при работе со строками в Python, рекомендуется учитывать особенности интернирования и оптимизации ваших структур данных.

Для примера, рассмотрим код:


a = "wtf!"
b = "wtf!"
print(a is b)  # True

В этом примере, переменные a и b ссылаются на один и тот же объект строки «wtf!», поэтому оператор is возвращает True. Однако, если бы мы присвоили значения «wtf!» переменным a и b в отдельных строках, они бы ссылались на разные объекты, и оператор is вернул бы False. Это пример того, как оптимизация интернирования влияет на работу с объектами строк в Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Аннотации типов в Python
  2. Работа с типами данных в Python с помощью pydantic.
  3. Работа с комплексными числами
  4. Метод rxor для операции побитового исключающего «или»
  5. Однострочники Python
  6. Magic Commands — улучшение работы с Python
  7. Библиотека Emoji: использование смайлов в Python
  8. Отслеживание выполнения программы с библиотекой tqdm
  9. Применение функции map() с лямбда-функциями
  10. Генерация QR-кодов с библиотекой qrcode
  11. Работа с zip()
  12. Сортировка данных в Python
  13. Обработка исключений с блоком else
  14. Измерение времени выполнения кода
  15. Метод split() в Python
  16. Очистка данных с помощью pandas
  17. Компиляция регулярных выражений
  18. Подчеркивание в REPL
  19. Работа с CSV файлами
  20. Defaultdict в Python
  21. Операторы присваивания в Python
  22. Установка и использование emoji
  23. Создание функций высшего порядка
  24. Структура данных словарь в Python
  25. Игра «Угадывание чисел»
  26. Переопределение метода sub
  27. Метод ior для битовых операций
  28. Метод setitem в Python
  29. Метод __ilshift__ для битового сдвига влево
  30. Частичное совпадение пользовательского ввода в Python 3.10
  31. capitalize() — изменение регистра первого символа строки
  32. Генераторы списков
  33. Обмен данными с asyncio.Queue
  34. Очистка входных данных
  35. Расчет времени выполнения
  36. Форматирование данных с помощью pprint
  37. Переопределение метода len
  38. Тестирование модели в PyTorch
  39. Генерация тестовых данных с factory_boy
  40. Удаление файлов в Python
  41. Выбор редактора кода.
  42. Именование столбцов в Python с pandas
  43. Удаление дубликатов из списка с помощью dict.fromkeys
  44. Namedtuple в Python
  45. Резервирование символов в Python
  46. Метод init в Python
  47. Преобразование строки в число
  48. Сохранение и загрузка модели в PyTorch

Marketello читают маркетологи из крутых компаний