python元组的介绍、元组与列表相同操作、元组中不允许的操作、列表和元组的转换
元组的介绍
我们知道,用方括号括起来的是列表,那么用圆括号括起来的是什么,是元组。
元组也是序列结构,但是是一种不可变序列,你可以简单的理解为内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。
>>> a = (1,2) >>> type(a) <class 'tuple'> >>> b = [1,2] >>> type(b) <class 'list'> >>>
元组与列表相同操作
1)使用方括号加下标访问元素
2)切片(形成新元组对象)
3) count()/index()
4) len()/max()/min()/tuple()
>>> a = (1,2) >>> type(a) <class 'tuple'> >>> b = [1,2] >>> type(b) <class 'list'> >>> a[0] # 使用方括号加下标访问元素 1 >>> c = a[0:1] #切片形成新的元组对象 >>> c (1,) >>> a.count(1) # 某个元素出现的次数 1 >>> a.index(1) # 指定值在元组中第一次出现的位置 0 >>> len(a) 2 >>> max(a) 2 >>> min(a) 1 >>> b = [1,2] >>> tuple(b) # 将列表转换为元组 (1, 2) >>>
元组中不允许的操作
1)修改、新增元素
2)删除某个元素(但可以删除整个元组)
3)所有会对元组内部元素发生修改动作的方法。例如,元组没有remove, append, pop等方法
>>> a = (1,2,[3,4]) >>> a (1, 2, [3, 4]) >>> a[2][0] 3 >>> a[2][0]= 5 # 元组只保证一级元素不可变,嵌套的可变 >>> a (1, 2, [5, 4]) >>> >>> a[1] 2 >>> a[1]= 8 Traceback (most recent call last): File "<pyshell#25>", line 1, in <module> a[1]= 8 TypeError: 'tuple' object does not support item assignment >>>
列表和元组的转换
使用list函数可以把元组转换成列表
使用tuple函数可以把列表转换成元组
>>> b = (1,2) >>> b (1, 2) >>> type(b) <class 'tuple'> >>> list(b) # list函数可以把元组转换成列表 [1, 2] >>>
>>> c = [1,2] >>> tuple(c) # tuple函数可以把列表转换成元组 (1, 2)
>>> a = (1,2,['a',3]) >>> list(a) [1, 2, ['a', 3]] >>> e = (1,2,(3,4)) >>> list(e) [1, 2, (3, 4)] # list 和 tuple 函数只转换最外层的嵌套的是不修改的 >>>