python中的tuple_python 数据类型 - tuple

tuple 元组

今天跟大家分享一下Python里面tuple数据类型的学习

ps:list数据类型,之前是写在了jianshu上,暂时我也还没有搬过来,所以贴上链接吧

概念

tuple,即元组。是Python内置的一种有序列表。跟list相比,tuple有比较特别的地方。

tuple不可变,一旦初始化定义后就不能修改。所以在定义的时候,元素值最好就确定下来。

tuple获取元素的方法与list一致。但是它没有append()、insert()等方法。

那tuple有什么好处呢?因为不可变,所以代码更加安全。如果可以,尽量用tuple代替list。

一、tuple定义

1、 定义一个空tuple

t = ()

t # 调用

输出:()

2、 定义一个只有一个元素的tuple

如下示例,注意比较“t”与“s”的区别,通过type()函数也可以清楚的看到。

>>> t = ('xyz')

>>> t

'xyz'

>>> type(t)

>>>

>>> s = ('abc',)

>>> s

('abc',)

>>> type(s)

>>>

ps:本来贴的图片,发现不方便看 -_-

注意哦,必须要添加一个逗号“,”,来消除歧义。

3、定义一个多个元素的tuple

t = (1,2,'abc')

t # 调用

输出:(1,2,'abc')

二、“可变的”tuple

刚才说tuple不可变,现在为何说“可变”呢?试想tuple里的元素是list类型时。

>>> t = ('a','b',['c','d']) # tuple里包含可变的list

>>> t [2][0]

'c'

>>> t[0][1]

Traceback (most recent call last):

File "", line 1, in

IndexError: string index out of range

>>> t [2][0] = 'C' # 修改tuple中的list类型值

>>> t

('a', 'b', ['C', 'd'])

>>> t[0][0] = 'e'

Traceback (most recent call last):

File "", line 1, in

TypeError: 'str' object does not support item assignment

块一中修改tuple中list的元素,tuple没有变,变的是list的元素。

tuple一开始指向的list并没有改变成别的list,id(list)没有变化。所以,tuple所谓的“不变”,是说tuple的每个元素指向永远不变,但是指向的list内容是可变的。

另一种方法改变tuple

>>> h = ('a','b','c')

>>> h1 = ('A',) + h[1:] # 用slice方法取得列表的一部分,其实是重新给对象赋值

>>> h1

('A', 'b', 'c')

三、序列赋值

(1)Python中,tuple类型为默认的集合类型

Python中,赋值可以采用序列赋值的方式,如下

>>>a,b = 1,2

>>>a,b

>>>(1,2)

bVbfqh5?w=398&h=94

(2)tuple序列作为函数默认的返回值类型,所有不包括符号封装的函数返回值都是元组类型

python函数返回值是一个tuple类型的值。返回值为一个时,括号省略;返回值为多个时,为同一个tuple接收,并把位置赋给相应的值。

若要返回一个list类型,则显示用“[]”进行修改。

def swap(x,y):

return y,x # return [y,x] 或者 return(y,x)

>>> swap(2,3)

(3, 2)

四、tuple的函数操作

(1) 两个元组的合并操作

两个tuple连接操作:tuple_a + tuple_b

tuple乘操作:tuple_a * int_number

实际效果如下图:

bVbfqng?w=455&h=217

(2) in操作符

判断元素i是否在tuple_a中,返回True or False。

if i in tuple_a :

(3) 访问元组元素

通过切片来访问元组的元素,它的切片操作跟列表list是一样,也是通过“切片操作符[]”+索引index来访问。

(4) 一些内建函数

len():

max():

min():

str():类型转换为string

list():类型转换为list

operator模块:可以调用里面的比较操作函数、逻辑操作函数、数学操作函数等,感兴趣的可以去看看operator.py文件源码,或者官网教程哦~

(5) 比较操作符

元组还可以进行一些比较操作符的操作,比如“>”、“<”、“==”等,跟数学里一样,对应元素值跟对应元素值进行比较,返回True或者False。

“大于”和“小于”只能比较同类型的tuple,如下示例:

>>> a = (1,2)

>>> b = ('a','b')

>>> c = (1,2,3)

>>> a > b

Traceback (most recent call last):

File "", line 1, in

TypeError: '>' not supported between instances of 'int' and 'str'

>>>

>>> a == c

False

大家可以随意去操作一下,就能清楚了,不算是重点。

有小伙伴能告诉我,专栏里的文章如何改变排序吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值