Python——元组的概述

元组的定义:元组是有序的不可修改的,以逗号分隔的,以小括号包围的序列,可以通过**()tuple()**函数定义,不能修改,只有在定义的一瞬间修改。

A = (1,2,3)#这就是一个元组

优点:

  • 遍历元组比列表快
  • 元组不可变,元组中数据被写保护,一些软件比较重要的数据通过元组进行存储
    我们这里先来定义一个元组:
num = (1,2,3,'ad')
print(num)
type(num)
(1, 2, 3, 'ad')
tuple

如果我们元组里面只放一个数据:

num = (2)
type(num)
int

这里,我们定义的元组,最后却成了一个int型数据。如果重新定义一种形式:

num1 = ('a')
type(num1)

最后输出的结果也是字符串str类型,那么,这是为什么呢?
Python中的()同样也表示数学运算的一个基本符号,比如(1+1)*2,所以这就和元组的这个小括号产生了歧义,当元组中只有一个元素,而又没有逗号的时候,它会把这元素运算出来,这个小括号会被Python解释器识别为一个运算符号,所以得到的是那个元素本身的数据类型。
所以,为了解决这个问题,我们只需在定义元组的元素后面加上一个逗号就可以消除这种情况。

num = (2,)
type(num)
tuple

元组中元素的访问:
元组中对于元素的访问依然是按照索引来访问的。

num = (1,2,3,'jk','hy')
print(num[0])
print(num[1])
1
2

修改元组:
前面说到,元组是不可变的,也就是说,元组中的元素在被赋值后不能改变。但是,如果元素本身是一个可变数据类型的列表,那么其嵌套项可以被改变。
例如:

num = (1,2,[7,8])
print(num)
num[2].append(3)
print(num)
(1, 2, [7, 8])
(1, 2, [7, 8, 3])

如果我们试着改变一下元组内元素的值:

num = (1,2,[7,8])
print(num)
num[2][1] = 'jk'
print(num)
(1, 2, [7, 8])
(1, 2, [7, 'jk'])

如果我们在元组内嵌套一个列表,我们也是只能对列表内的数据进行增删。
tuple()函数:
tuple函数的功能与list函数基本上一样的,以一个序列作为参数并把它转换为元组,如果参数是元组,那么该参数就会被原样返回。

num1 = [2,3,4,'jk']
num1 = tuple(num1)#列表变元组
print(num1)
str1 = 'beautiful' 
str1 =  tuple(str1)#字符串变元组
print(str1)
(2, 3, 4, 'jk')
('b', 'e', 'a', 'u', 't', 'i', 'f', 'u', 'l')

元组的索引也是和访问列表与字符串完全一致的。
嵌套元组的访问方式:这种方式其实与c语言的矩阵访问方式差不多的。

num = ((1,'jk'),(2,'hy'),(3,'aj'))
print(num[0][1])
print(num[1][1])
jk
hy

元组的查找
index 从左往右返回第一个遇到的指定元素的索引,如果没有,报错

num = (1,2,3,'jk','hy')
num.index(2)
1

count 返回元组当中指定元素的个数

num = (1,2,3,'jk','hy')
num.count(3)
1

python元组与列表的区别
1、元组和列表都是有序的,元组不可修改,列表可修改。
2、元组和列表的元素可以是任何类型
3、元组的元素长度可以任意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值