python中什么方法用于接收一个元祖

Python034

python中什么方法用于接收一个元祖,第1张

一:元组(tuple)

1、元组是不可改变的序列,同list一样,元组可以存放任意类型的元素,一旦元组生成,则它不可以改变(包括增、删、改)。

2、元组的表示方式:用小括号()括起来,单个元素括起来用逗号(,)区分是单个对象还是元组

3、元组的创建:

创建空元组的字符值:t=()

创建非空元组的字面值:

t=200,

t=(20,)

t=(1,2,3)

t=100,200,300

4、元组的构造函数(tuple)

A:tuple()生成一个空的元组,等同于()

B:tuple(iterable)用可迭代对象生成一个元组

示例:

t=tuple()

t=tuple(range(10))

t=tuple(‘hello’)

t=tuple([])

二:元组的用法

1、元组的算术运算:(用法与列表的用法完全相同)

+=**=

例:定义两个元组,与其相加,再用得到的新元组乘以2,与列表对比一下,看看有何不同?(分析:两原组相加,会把第二个元组的元素放在第一个元组元素的后面,两元组相乘,会重复原元组元素的个数,乘以几,就重复几次)

2、元组的比较运算:

<<=>>===!=

3、in/not in

索引取值

切片取值

规则与列表完全相同

区别:

元组是不可变对象,不支持索引赋值和切片赋值

4、元组的方法

t.index(v[,begin[,end]])----用于获取元组中V所在的索引位置

t.count(v)----用于获取元组中V的个数

例:定义一个元组字面值,查看某个值在元组的索引位置,并统计其元组中某个数出现的个数。

5、元组中的三个构造函数和序列函数

Str(obj)

List(iterable)

Tuple(iterable)

序列函数:len,max,min,sum,all,any

在Python中,元组(Tuple)与列表(List)类似,也是一个有序的序列,但元组是一个不可变对象,其一旦初始化后便无法进行修改。

一般在创建元组时,分为创建空元组和非空元组,其创建方式如下:

从上面可以看到,我们只需要把元组的所有元素放在 小括号 () 里面,每个元素之间通过 逗号 , 间隔起来即可,当然和列表一样,元组中同样允许存放不同数据类型的元素。

元组中使用的 () 是常见的数学运算符,如果参考列表的创建,如下:

从上面可以看到,我们创建出来的压根就不是元组类型。那么我们想创建一个只包含一个元素的元组时,需要怎么创建呢?

很简单,只需要在元素后加上一个 逗号 , ,这样创建出来就是一个元组。

当我们需要访问元组中的元素,可以类似列表一样通过索引取值或切片取值。

如果访问的索引不存在,那么会报错: IndexError: tuple index out of range

在元组中,可以像列表一样使用切片,语法为: 元组[start:end:step] ,通过切片可以获取到元组中指定范围的元素,返回结果是一个新元组。在这里,需要注意切片的规则是左闭右开,也就是说包含头部 start,但不包含尾部 end ,而 step 则表示切片的步长,需要每间隔 step 个元素取一次。

在上面我们提到了元组是不可变的,这就意味着我们创建一个元组之后,不能再去改变其值了,比如下面这样就会出现报错:

假设元组中存在元素是一个可变对象,如果我们不改变元组,但改变了可变对象的值,又会得到怎么的结果呢?请看下面实例:

从上面可以看到,元组中的第 2 个元素似乎发生了变化,这岂不是和上面说的元组不可变自相矛盾了吗?

其实,我们说的元组不可变,指的是元组中各元素的指向永远保持不变。在上面操作中,元组中第 2 个元素指向的一直是 列表nums ,我们改变的其实不是元组的元素,而只是改变了 列表nums 中的元素。

元组是不可变的,因此我们就不能删除元组中的元素,但是,我们可以通过 del 语句删除整个元组。

通过关键字 in ,可检查当前元组中是否包含指定元素,返回结果为布尔值 True 或 False。

通过关键字 in ,还可以用于遍历当前元组。