В этом руководстве мы узнаем о важном различии между списком и кортежами и о том, как оба они играют важную роль в Python.
Списки и кортежи используются для последовательного хранения одного или нескольких объектов Python или типов данных. Оба могут хранить любые данные, такие как целое число, число с плавающей запятой, строку и словарь. Списки и кортежи схожи по большинству факторов, но здесь мы опишем основное различие между ними.
Давайте обсудим основные отличия списка и кортежа в Python.
1 | Синтаксис списка с помощью []. | Синтаксис кортежа с помощью (). |
2 | Изменяемый | Неизменен |
3 | Имеет переменную длину. | Имеет фиксированную длину. |
4 | Предоставляет больше возможностей, чем кортеж. | Обеспечивает меньшую функциональность, чем список. |
5 | Список используется в сценарии, в котором нам нужно хранить простые коллекции без ограничений, где значение элементов может быть изменено. | Кортеж используется в тех случаях, когда нам нужно хранить коллекции только для чтения, т.е. значение элементов не может быть изменено. Его можно использовать в качестве ключа внутри словаря. |
6 | Менее эффективны для памяти, чем кортеж. | Более эффективны в памяти из-за своей неизменности. |
Список и кортеж
Различия в представлении
Представление списков и кортежей незначительно отличается. Список обычно заключен в квадратную скобку [], а элементы разделены запятыми. Кортежи в Python заключаются в круглые скобки() и элементы также разделяются запятой. Скобки использовать необязательно, и эти типы кортежей называются упаковкой кортежей.
Рассмотрим следующий пример:
list1 = [‘JavaTpoint’, 1, 2, 54.30, ] print(type(list)) tuple1 =(‘JavaTpoint’,5,8,31.9,[1,2,3]) print(type(tuple1))
В приведенной выше программе мы определили переменную list1, которая содержит список различных типов данных от индекса 0 до 4. Мы определили другую переменную tuple1, которая содержит кортеж с разными типами данных. Он заключен в().
Изменяемые списки и неизменяемые кортежи
Это наиболее важное различие между списком и кортежем, в то время как списки изменяемы, а кортежи неизменны. Списки изменяемы, что означает, что объект Python может быть изменен после создания, тогда как кортежи не могут быть изменены после создания. Рассмотрим данный пример:
a = [«Peter»,»Joseph»,»Mathew»,»Ricky»] print(a)
[‘Peter’, ‘Joseph’, ‘Mathew’, ‘Ricky’]
Теперь мы меняем 0-й элемент индекса «Peter» на «Samson».
a[0] = «Samson» print(a)
[‘Samson’, ‘Joseph’, ‘Mathew’, ‘Ricky’]
Теперь мы создаем кортеж и делаем то же самое.
a =(10,20,»JavaTpoint»,30,40) print(a)
(10, 20, ‘JavaTpoint’, 30, 40)
a[0] = 50
TypeError Traceback (most recent call last) in —-> 1 a[0] = 50 TypeError: ‘tuple’ object does not support item assignment
Списки (List) vs Кортежи (Typle)
Списки и кортежи используются для последовательного хранения одного или нескольких объектов или типов данных Python. И те и другие могут хранить любые данные, такие как целые числа, плавающие числа, строки и словари. Списки и кортежи похожи по большинству параметров, но здесь мы опишем основные различия между ними.
34 Кортежи (tuple) в Python. Операции и методы кортежей
Различия в представлении
Представление списков и кортежей отличается незначительно. Списки обычно заключаются в квадратную скобку ё [] , а элементы — через запятую. Кортежи заключаются в круглую скобку () , а элементы разделяются запятой. Скобки использовать необязательно, и такие типы кортежей называются упаковкой кортежей.
Рассмотрим следующий пример.
list1 = [‘JavaTpoint’, 1, 2, 54.30, ] print(type(list)) tuple1 = (‘JavaTpoint’,5,8,31.9,[1,2,3]) print(type(tuple1))
В приведенной выше программе мы определили переменную list1 , которая содержит список данных разного типа с индексом от 0 до 4 . Мы определили еще одну переменную tuple1 , которая содержит кортеж данных разного типа. Она заключена в рамку () .
Изменяемые списки и неизменяемые кортежи в Python
Это самое важное различие между списком и кортежем, в то время как списки являются изменяемыми, а кортежи — неизменяемыми. Списки являются изменяемыми, что означает, что объект Python может быть изменен после создания, в то время как кортежи не могут быть изменены после создания. Рассмотрим приведенный пример.
a = [«Peter»,»Joseph»,»Mathew»,»Ricky»] print(a)
[‘Peter’, ‘Joseph’, ‘Mathew’, ‘Ricky’]
Теперь мы меняем 0-й элемент индекса «Peter» на «Samson».
a[0] = «Samson» print(a)
[‘Samson’, ‘Joseph’, ‘Mathew’, ‘Ricky’]
Теперь мы создаем кортеж и делаем то же самое.
a = (10,20,»JavaTpoint»,30,40) print(a)
(10, 20, ‘JavaTpoint’, 30, 40)
a[0] = 50
TypeError Traceback (most recent call last) in —-> 1 a[0] = 50 TypeError: ‘tuple’ object does not support item assignment
Плюсы и минусы разных форматов данных: пары «ключ-значение» и кортежи
Работа над Vasern (клиентская база данных для React Native) дала мне возможность попробовать и протестировать различные форматы данных, которые включают ключ-значение, столбцы, документы и кортежи. Каждый формат был разработан для разных сценариев.
Критерии этих тестов сосредоточены на производительности, возможности поиска значений и эффективности использования пространства. Кроме того, необязательно иметь на диске отсортированные ключи и индексы. Они будут загружены в память для быстрого поиска.
В этом посте я резюмирую плюсы и минусы двух распространенных форматов: пары «ключ-значение» и формат кортежей. Кроме того, я расскажу о тегированных ключах- values , расширение пар «ключ-значение» с поиском по индексу, в котором используется формат кортежей.
Хранилище ключей и значений
Пары «ключ-значение» хранят набор пар «ключ-значение», где иногда значение представляет несколько значений, разделенных разделителями (например, запятыми). Эти пары организованы в блоки фиксированной длины (для быстрого перехода между записями).
Преимущества хранилища пар «ключ-значение»:
- Простой формат данных ускоряет операции записи и чтения
- Значение может быть любым, включая JSON, гибкие схемы
Недостатки:
- Оптимизирован только для данных с одним ключом и значением. Парсер необходим для хранения нескольких значений.
- Не оптимизирован для поиска. Поиск требует сканирования всей коллекции или создания отдельных значений индекса
Хранилище данных кортежей (СУБД)
Формат данных кортежей существует уже много десятилетий. Он используется в реляционных базах данных, таких как MySQL, Postgres и т. Д.
В отличие от формата «ключ-значение», он использует предопределенную схему для организации записей в строки, а ее значения — в столбцы фиксированной длины. Каждое значение обычно представляет собой только одну часть информации.
Преимущества хранилища данных кортежей:
- Структурированный формат данных помогает быстро просматривать значения записей
- Оптимизирован для поиска (обычное использование SQL для запросов к записям)
Недостатки:
- Ограничено структурой схемы
- Изменение схемы обычно требует перезаписи всей базы данных
Tagged Key-Value Store (Хранилище ключей и значений с тегами)
Tagged Key-Value — это расширенная версия хранилища Key-Value — у него более одного ключа для одного значения. Другими словами, у него есть ключ, индексы (или теги) и значение тела для каждой записи. Где:
- Ключ и индексы будут загружены в память при запуске.
- Значение тела может быть любым: от простой строки, BSON / JSON или значения, разделенного запятыми.
Преимущества хранилища ключей и значений с тегами:
- Полуструктурированный, что помогает быстро просматривать записи и индексы.
- Оптимизирован для поиска (по ключам и индексам)
- Тело записи может быть любым, идеально подходит для гибких схем.
- Эффективность использования пространства (ключ, показатели сгруппированы в плотные столбцы)
Недостатки:
- Для изменения схемы, включающей индексы, может потребоваться перенос данных.
Vasern с помеченным хранилищем ключей и значений
Vasern — это клиентская база данных для React Native. Последняя версия была выпущена в рамках бета-тестирования для тестирования и использовала хранилище «ключ-значение».
В грядущей версии 0.3.0-RC Васерн переходит на разметку хранилища ключей и значений с тегами. Основное внимание уделяется его мощной функции поиска и экономии места.
Ниже представлен демонстрационный запрос. Красиво, правда?
Существует множество баз данных с различными форматами данных, которые можно выбрать для приложения. Два распространенных формата:
- Пары «ключ-значение» — быстрое чтение и запись, но не оптимизированы для поиска. Его часто используют как простое хранилище данных, NoSQL.
- Кортежи — поддерживают значения с несколькими типами, индексы, оптимизированные для поиска, но отсутствие гибкости схемы. Обычно используется для реляционных баз данных.
Комбинируя упомянутые выше сильные стороны, формат Tagged-Key-Values гибок со схемой данных и может искать записи с помощью ключей и индексов. Часто это лучше подходит для клиентской базы данных.
Если вы нашли эту статью полезной, нажмите кнопку несколько раз, чтобы другие нашли ее и выразили свою поддержку!
Спасибо за чтение!
Источник: skine.ru