当前位置: 代码迷 >> 综合 >> Python学习(12)之元组(tuple)、元组和列表的不同之处
  详细解决方案

Python学习(12)之元组(tuple)、元组和列表的不同之处

热度:33   发布时间:2023-12-09 02:37:01.0

文章目录

  • 一、元组
      • 1、元组与列表的不同之处
      • 2、定义一个元组
      • 3、删除一个元组
      • 4、元组是不可变的
  • 二、元组的特性
      • 1、索引
      • 2、切片
      • 3、连接(只能连接元组)
      • 4、重复
      • 5、成员操作符(in)
      • 6、for循环(元组的遍历)
  • 三、元组常用的函数
      • 1、计数
      • 2、通过元组项求索引值
  • 四、元组的应用场景
      • 1、元组的赋值
      • 2、打印变量

一、元组

Python中,元组(tuple)和列表类似。元组写在小括号()内,以逗号分隔开。元组可以容纳任意数量的不同类型的元素(如整数、浮点数、字符串、列表等)。

1、元组与列表的不同之处

相同之处:list 与 tuple 都是序列类型的容器对象,可以存放任何类型的数据、支持切片、迭代等操作。
不同之处

  • 元组是不可变数据类型, 大小固定,而list是可变类型,数据可以动态变化。这就导致两者提供的方法有很大的区别。列表特有的方法(排序,插入,反转,扩展,移除,追加)都是基于原来的列表进行更新,而tuple作为不可变数据类型,同样大小的数据,初始化和迭代tuple都要快于list,tuple 占用的内存空间更少。
python -m timeit “[1,2,3,4,5]10000000 loops, best of 3: 0.123 usec per loopython -m timeit “(1,2,3,4,5)100000000 loops, best of 3: 0.0166 usec per loop a = tuple(range(1000)) 
b = list(range(1000)) 
a.sizeof() 
8024 
b.sizeof() 
9088 
  • tuple用于存储异构数据,而列表一般用于存储同构数据(具有相同意义的数据)

2、定义一个元组

  • 把所有的元素以逗号分隔,放在小括号内,然后赋值给一个变量,即可创建。(小括号在创建元组时不是必需的。)

(1)包含不同数据类型元素的元组

tup = "a", "b", "c", "d"
tup1 = (1,2,3,4)
tup2 = ('ran','qiuqiu','love')

在这里插入图片描述
(2)嵌套元组如果元组里面包含可变的数据类型(如列表),可以间接的通过修改列表去修改元组内容
在这里插入图片描述

在这里插入图片描述

(3)仅有一个元素的元组元组如果只有一个元素的时候,元素后面一定要加逗号,来完成元组的声明
在这里插入图片描述
在这里插入图片描述

如果不添加逗号,那么变量的类型是字符串。

在这里插入图片描述
在这里插入图片描述

3、删除一个元组

del tuple
>>> t = ('ran','qiuqiu','love','love',1,2,3,4,True)
>>> print (t)
('ran', 'qiuqiu', 'love', 'love', 1, 2, 3, 4, True)
>>> del t
>>> print (t)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 't' is not defined

4、元组是不可变的

元组的不可变:是指元组所指向的内存中的内容不可变。重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象。

>>> tup = ('ran','qiuqiu','love','love',1,2,3,4,True)
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了

二、元组的特性

元组中的元素没有增删改,但是可以通过组合的方式来修改元组,元组中的元素不可以删除,但是可以使用del语句来删除整个元组

1、索引

  • 通过使用**方括号[]包围的索引值及元组名**来访问元组中的元素,用法和对string的访问类似。

在这里插入图片描述

2、切片

  • 可以使用切片来**打印元组中连续的值**
    在这里插入图片描述

在这里插入图片描述

3、连接(只能连接元组)

在这里插入图片描述

>>> tup = "a", "b", "c", "d"
>>> tup1 = (1,2,3,4)
>>> tup2 = ('ran','qiuqiu','love')
>>> print(tup + tup1)
('a', 'b', 'c', 'd', 1, 2, 3, 4)>>> list = ['ranran','xixi']
>>> print(tup + list)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "list") to tuple
>>>

4、重复

在这里插入图片描述

5、成员操作符(in)

  • 判断一个元素是否存在在于某元组中。输出的结果是布尔值。
    在这里插入图片描述

6、for循环(元组的遍历)

在这里插入图片描述

三、元组常用的函数

在这里插入图片描述

1、计数

t.count(某元素)

在这里插入图片描述

2、通过元组项求索引值

在这里插入图片描述

四、元组的应用场景

1、元组的赋值

(1)给某元组赋值

  • 元组允许左边的变量直接复制右边的元组值,但是左边变量必须与右边元素的个数相同
  • 每个变量被赋予元组中的一个值,并且可以单独访问。
    在这里插入图片描述
    在这里插入图片描述

(2)交换两变量的值

在这里插入图片描述
在这里插入图片描述

2、打印变量

在这里插入图片描述

在这里插入图片描述