Серия данных Python (3) — Tuple Tuple: «Неизменная последовательность» Python

Python
Серия данных Python (3) — Tuple Tuple: «Неизменная последовательность» Python

Эта серия посвящена функциям, часто используемым формам данных, таким как списки, кортежи, словари, массив-numpy, DataFrame-панды и наборы, которые часто используются при обработке данных с помощью Python, подробно описана операция.

Сегодня начнем третью статью из этой серии ---Серия данных Python (три) — Tuple Tuple: «неизменяемая последовательность» Python.

Кортеж Кортеж имеет следующие характеристики

  • Неизменяемые последовательности, элементы в кортеже не могут быть удалены, но вы можете использовать оператор del для удаления всего кортежа
  • Кортеж — это набор данных, заключенных в круглые скобки "()", а различные элементы разделены символами ","
  • В отличие от списков: данные в кортежах не могут быть изменены после их создания.
  • Доступ по индексу

утверждение:

L=(1,2,3)

Кортеж с 0 элементами: L = ()

Кортеж с 1 элементом: L=(1,) Обратите внимание на запятую

Создать кортеж

In [1]: 1,2,3
Out[1]: (1, 2, 3)

In [2]: ()
Out[2]: ()

In [3]: (1,)
Out[3]: (1,)

In [4]: 32
Out[4]: 32

In [5]: 32,
Out[5]: (32,)

In [6]: (32,)
Out[6]: (32,)

In [7]: 3*(32+3)
Out[7]: 105

In [8]: 3*(32+3,)
Out[8]: (35, 35, 35)

Основные операции с кортежами

In [9]: t=('a','b',(1,2))

In [10]: t[1]   # 取元组内元素
Out[10]: 'b'

In [11]: t[2]
Out[11]: (1, 2)

In [12]: t[2][1]
Out[12]: 2

In [13]: t1=(12,13,14)

In [14]: t2=t1+t   # 元组的+号连接

In [15]: t2
Out[15]: (12, 13, 14, 'a', 'b', (1, 2))

In [16]: del t2   # 删除元组

In [17]: t2
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-17-7ac3afd84e12> in <module>()
----> 1 t2

NameError: name 't2' is not defined

In [18]: list_a=[1,2,3]

In [19]: tuple(list_a)   # list列表转化为元组
Out[19]: (1, 2, 3)

In [20]: tuple('abc')    # str转化为元组
Out[20]: ('a', 'b', 'c')

In [21]: tuple('a','b','c')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-21-1b062a453ca1> in <module>()
----> 1 tuple('a','b','c')

TypeError: tuple() takes at most 1 argument (3 given)

In [22]: tuple((abc))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-22-da0a3eef4197> in <module>()
----> 1 tuple((abc))

NameError: name 'abc' is not defined

In [23]: tuple((a,b,c))
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-23-1f4af24915b9> in <module>()
----> 1 tuple((a,b,c))

NameError: name 'a' is not defined

In [24]: tuple((1,2,3))
Out[24]: (1, 2, 3)

In [25]: len((1,2,3))   # 求元组长度
Out[25]: 3

In [26]: (1,2,3)+(4,5,6)   # 元组连接
Out[26]: (1, 2, 3, 4, 5, 6)

In [27]: ("a")*4   # 字符串复制
Out[27]: 'aaaa'

In [28]: ("a",)*4   # 元组复制
Out[28]: ('a', 'a', 'a', 'a')

In [29]: 1 in (1,2,3)  # 检查元素是否在元组内
Out[29]: True

In [30]: for x in (1,2,3):  # 打印元组内元素
    ...:     print(x)
    ...:
1
2
3

In [31]: max((1,2,3))   # 返回元组最大值
Out[31]: 3

Преобразование списка Python в кортеж

Преобразовать список в кортеж:

temp_list = [1,2,3,4,5]

В ролях temp_list:

tuple(temp_list)

Проверяем успешность конвертации:

print(type(temp_list))

Преобразовать кортеж в список:

temp_tuple = (1,2,3)

Метод аналогичен, и также возможно принудительное преобразование:

list(temp_tuple)

Проверяем успешность конвертации:

print(type(temp_tuple))

На самом деле в повседневной жизни кортежи создаются редко, но столкнуться с проблемами с кортежами очень хлопотно. Выкопайте здесь дыру, я надеюсь, что однажды я смогу узнать больше о кортежах и снова поделиться ими.

Прочитав введение столь многих пар кортежей, вы можете задаться вопросом, кому нужны неизменяемые последовательности, такие как кортежи? Разве мы не можем просто придерживаться списка, не меняя его содержимого?

Обычно это работает. Но по следующим двум важным причинам,Кортежи не заменяемы:

  • Кортежи можно использовать в качестве ключей в картах (и элементах наборов), но не в списках;
  • Кортежи существуют как возвращаемое значение многих встроенных функций и методов, а это означает, что вам приходится иметь дело с кортежами, пока вы не пытаетесь изменить кортежи, тогда «обработка» кортежей в большинстве случаев обрабатывает их как список для работы (кроме методов, которых нет у кортежей, таких как index и count)

Преимущества неизменности кортежа

Кортеж неизменен по отношению к списку, что позволяет использовать его в качестве ключа в словаре или добавлять в набор, в то время как список не может.

Кортеж отказывается от добавления и удаления элементов (дизайн структуры памяти становится более упорядоченным) в обмен на улучшение производительности: создание кортежа происходит быстрее, чем списка, и занимает меньше места для хранения, чем список. Так что есть поговорка, что «там, где вы можете использовать кортеж, вам не нужен список».

Когда многопоточность является параллельной, кортеж не нужно блокировать, поэтому не нужно беспокоиться о проблемах безопасности, и его намного проще писать.

Оригинальная ссылка:blog.CSDN.net/Soft 1…

Вообще говоря,Список может больше соответствовать всем требованиям последовательности, за исключением особых случаев, рекомендуется использовать список-список..

В следующей статье этой серии мы обсудиммассив (массив) - numpy, который являетсяПоле ИИФорма данных, которая часто используется.

прошлый обзор

  1. Основы сети знаний (1) - Что такое сеть знаний
  2. Основы Графа знаний (2) - Система выражения знаний Графа знаний
  3. Основы графа знаний (3) - Построение схемы
  4. Серия данных Python (1) — Список списка: «Кули» Python
  5. Python Data Series (2) — Словарь: «Большой пожиратель» Python